我不确定你在这里想问什么。所有的内容都在文档中。
默认情况下,QSplitter会动态调整其子控件的大小。如果你希望QSplitter仅在调整大小操作结束时调整子控件的大小,请调用setOpaqueResize(false)。
也就是说,如果你在分隔栏上调用了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()
希望这能让事情更清晰一些。