2015-11-02 76 views
0

我有一个QSplitter和两个子部件。让我们说,p_widget_1和p_widget_2。 p_widget_1被允许关闭,它有一个关闭按钮,当点击关闭时,我调用p_widget_1-> hide()。 QSplitter doc说:隐藏QSplitter的孩子,但保持手柄的位置

当你隐藏()一个孩子时,其空间将分布在其他孩子之间。当您再次显示()时,它将被恢复。

但我希望QSplitter的句柄保持其位置,因为我有一个要求p_widget_2应该有固定的大小。

我该如何实现它?我目前的方法是在必要时调用p_splitter-> setSizes(),但它并不总是适用于我所有的情况。

我在Windows,QT是5.4.1时,Visual Studio 2013年

回答

0

我没有在一个特定的QWidget的(像你了QSplitter)尝试,但这个是我做的,当我想挽回几何一个窗口后关闭:孩子是隐藏

  • 之前,保存的QByteArray与 下面的函数检索(您了QSplitter)

    的QByteArray的QWidget :: saveGeometry()const的

  • 孩子再次显示后,调用下面的方法与 的QByteArray中你只是存储

    布尔QWidget的:: restoreGeometry(常量的QByteArray &几何)

文档here

0

我不确定这是否解决了您的问题。尝试'saveSate'方法来保存QSplitter的状态并通过'restoreState'方法恢复它。