python – 缩小子大小后缩小父级小部件

python – 缩小子大小后缩小父级小部件,第1张

概述如果他们的一个孩子改变了身高,我怎么能让所有小部件缩小? 如果新的高度更大,它们会扩展,但如果更小,则不会缩小. 我尝试了updateGeometry(),但它没有改变任何东西. 这是一个例子,在子元素shran之后,父母的身高不会改变:     import sysfrom PyQt4.QtGui import *class MainWindow(QWidget): def __i 如果他们的一个孩子改变了身高,我怎么能让所有小部件缩小?
如果新的高度更大,它们会扩展,但如果更小,则不会缩小.

我尝试了updateGeometry(),但它没有改变任何东西.

这是一个例子,在子元素shran之后,父母的身高不会改变:
   

import sysfrom 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();}
总结

以上是内存溢出为你收集整理的python – 缩小子大小后缩小父级小部件全部内容,希望文章能够帮你解决python – 缩小子大小后缩小父级小部件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存