Я не совсем уверен, что вы спрашиваете здесь.Это все в документах .
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()
Надеюсь, это немного прояснит ситуацию.