PySide Resize Widget - 更新UI

时间:2018-06-13 15:34:01

标签: python pyqt pyside pyside2

我正在尝试制作一个下拉窗口 我是通过组合框执行此操作,并将小部件隐藏在该组框内 我正在连接goupbox点击隐藏窗口小部件的功能,然后调整主窗口小部件的大小,但是我遇到的问题是它在调用调整大小之前似乎没有更新其UI,所以它认为它比它意味着它永远不会缩小到它应该的大小。

    ## What I'm connecting
    self.AsettingsGbox.clicked.connect(self.AsettingsGboxFUNC)

    ## The hidden Widget's height
    self.AsWidgetH = self.AsettingsWidget.sizeHint().height()


def AsettingsGboxFUNC(self):
    '''
    Collapsable group box
    '''
    if self.AsettingsGbox.isChecked():
        self.AsettingsWidget.show()
        newHeight = self.size().height() + self.AsWidgetH           
    else:
        self.AsettingsWidget.hide()
        newHeight = self.size().height() - self.AsWidgetH


    # Problem where the UI has not finished updating before the resize is triggered

    ## Main Window widget
    #self.repaint()
    #self.update()
    #self.updateGeometry()

    ## Widget inside the group box that gets hidden
    #self.AsettingsWidget.repaint()
    #self.AsettingsWidget.update()
    #self.AsettingsWidget.updateGeometry()

    ## Group Box
    #self.AsettingsGbox.repaint()
    #self.AsettingsGbox.update()
    #self.AsettingsGbox.updateGeometry()

    self.resize(self.size().width(), newHeight)

正如您所看到的,我已经尝试了所有更新,但这似乎并不坚持。我也尝试过processEvents,但这也没有。

如果我手动在窗口上运行self.resize(self.size()。width(),newHeight),在建立之后,调整大小会起作用,这就是为什么我认为它不会更新ui显示。< / p>

对此的任何想法都将不胜感激!

0 个答案:

没有答案