我有一个QSplitter和两个子小部件。让我们说p_widget_1和p_widget_2。允许关闭p_widget_1,它有一个关闭按钮,当点击关闭时,我调用p_widget_1-> hide()。 QSplitter doc说:
当你隐藏()一个孩子时,它的空间将分配给其他孩子。当你再次展示它时,它将被恢复。
但是我希望QSplitter的句柄保持其位置,因为我要求p_widget_2应该有固定的大小。
我如何实现它?我当前的方法是在必要时调用p_splitter-> setSizes(),但它并不总是适用于我的所有情况。
我在Windows上,QT是5.4.1,Visual Studio 2013。
答案 0 :(得分:0)
我没有尝试使用特定的QWidget(就像你的QSplitter一样),但是当我想在窗口关闭后恢复窗口的几何时,这就是我所做的:
在隐藏子项之前,保存使用。检索的QByteArray 以下功能(在您的QSplitter上)
QByteArray QWidget :: saveGeometry()const
再次显示子项后,请使用以下方法调用 刚刚存储的QByteArray
bool QWidget :: restoreGeometry(const QByteArray& geometry)
文档here。
答案 1 :(得分:0)
我不确定这是否能解决您的问题。尝试'saveSate'方法来保存QSplitter的状态并通过'restoreState'方法恢复它。