2011-04-07 47 views

回答

10

我不確定你在這裏問什麼。全部在docs

QSplitter默認動態調整其子 。如果您想 而具有了QSplitter只在調整大小 操作結束調整 孩子,叫setOpaqueResize(假)

含義,如果你對你的分路器設置setOpaqueResize(false),啓動應用程序,並試圖拉分路器調整其保存的小部件的大小,直到您釋放拆分器纔會實際調整小部件大小。另一方面,如果它設置爲true,它將嘗試在拖動分離器手柄的同時調整窗口小部件的大小。

如果您的自定義窗口小部件花費很長時間繪製例如因爲它會使調整速度非常慢,那麼關閉此功能會很有用。

但是要回答你的問題,屬性opaqueResize可以確定調整大小是否是不透明的,也就是說,在拖動拆分器時是否調整窗口小部件的大小。


例子:

這裏是一個PyQt的例子,你可以試試(我不得不例如在Python奠定左右,但它應該工作一樣在C++中):

from PyQt4 import QtGui, QtCore 

class Example(QtGui.QWidget): 
    def __init__(self, *args, **kwargs): 
     super(Example, self).__init__(*args, **kwargs) 
     top = QtGui.QLabel('test', self) 
     bottom = QtGui.QPushButton('test', self) 
     splitter = QtGui.QSplitter(QtCore.Qt.Vertical) 
     # Try changing from False to True 
     splitter.setOpaqueResize(False) 
     splitter.addWidget(top) 
     splitter.addWidget(bottom) 
     hbox = QtGui.QHBoxLayout(self) 
     hbox.addWidget(splitter) 
     self.setLayout(hbox) 
     self.setGeometry(250, 200, 350, 250) 

def main(): 
    app = QtGui.QApplication([]) 
    ex = Example() 
    ex.show() 
    app.exec_() 

if __name__ == '__main__': 
    main() 

希望這使事情更清楚一點。

+0

很好的解釋。在其他框架中,它可能被稱爲實時調整大小。 – 2011-04-07 12:14:03