python – 缩小子大小后缩小父级小部件
发布时间:2020-12-20 11:18:54 所属栏目:Python 来源:网络整理
导读:如果他们的一个孩子改变了身高,我怎么能让所有小部件缩小? 如果新的高度更大,它们会扩展,但如果更小,则不会缩小. 我尝试了updateGeometry(),但它没有改变任何东西. 这是一个例子,在子元素shran之后,父母的身高不会改变: ??? import sysfrom PyQt4.QtGui im
如果他们的一个孩子改变了身高,我怎么能让所有小部件缩小?
如果新的高度更大,它们会扩展,但如果更小,则不会缩小. 我尝试了updateGeometry(),但它没有改变任何东西. 这是一个例子,在子元素shran之后,父母的身高不会改变: import sys from PyQt4.QtGui import * class MainWindow(QWidget): def __init__(self,parent=None): QWidget.__init__(self,parent) # inner widget self.widget = QGroupBox('inner') vbox_inner = QVBoxLayout(self.widget) button1 = QPushButton('100') button1.clicked.connect(lambda: self.change_height(100)) vbox_inner.addWidget(button1) button2 = QPushButton('200') button2.clicked.connect(lambda: self.change_height(200)) vbox_inner.addWidget(button2) # outer layout vbox = QVBoxLayout(self) vbox.addWidget(self.widget) # resizing element def change_height(self,height): self.widget.setFixedHeight(height) app = QApplication(sys.argv) myapp = MainWindow() myapp.show() sys.exit(app.exec_()) 有没有办法调整所有父母的小部件? 用Python回答: widget = self.parent() while widget: widget.adjustSize() widget = widget.parent() 解决方法
您应该在“顶层”窗口小部件(在本例中为MainWindow)上调用
adjustSize() 方法.
您需要自己在窗口小部件层次结构中传播该调用,以获得比样本更复杂的布局.在C中,你可以这样做: QWidget *w = <the widget you resized>->parentWidget(); while (w) { w->adjustSize(); w = w->parentWidget(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |