加载.ui文件后如何在布局中添加Qlabel?

时间:2019-06-14 22:38:45

标签: python layout qlabel pyside2

我正在创建一个GUI,该GUI根据一些数据动态填充网格布局。网格的每个单元格都将显示A,B或C。我正在使用Qt Designer构建此GUI,从而在 init ()期间加载.ui文件。由于gridlayout显示的数据可能在每次GUI加载之间都可能发生变化,因此我无法在.ui文件中实现它们。

我最终意识到,我不知道在加载.ui文件之后如何添加更多小部件。即使使用QtCore.QCoreApplication.processEvents()也不起作用。

为了使以下测试正常工作,您需要使用Qt Designer制作一个具有名为“ verticalLayout”的QVBoxLayout的.ui文件。

from PySide2 import QtWidgets, QtCore, QtUiTools, QtGui

class myClass(QtWidgets.QMainWindow):
    '''
    UI Class for this tool.
    '''
    def __init__(self, *args, **kwargs):
        super(myClass, self).__init__(*args, **kwargs)
        self.UI_FILE =  'path\\to\\myClass.ui')

        #load the ui file
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.UI_FILE)
        file.open(QtCore.QFile.ReadOnly)
        try:
            self.ui = loader.load(file, self)
        finally:
            file.close()

        self.setMinimumSize(1200, 800)

        self.setCentralWidget(self.ui.centralWidget())

        self.myLabel = QtWidgets.QLabel(self)
        self.myLabel.setText('lol')
        self.ui.verticalLayout.addWidget(self.myLabel)

我希望出现一个标签,上面写着“大声笑”。

0 个答案:

没有答案