2015-11-02 24 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'方法恢復它。