PyQt4添加标签loadUi

时间:2013-05-17 10:48:36

标签: python pyqt4 qtgui loadui

import sys
from PyQt4 import QtCore, QtGui, uic


class MainWindow(QtGui.QMainWindow):
     def __init__(self):
         QtGui.QMainWindow.__init__(self)

         self.Dynamic_log = uic.loadUi("Dynamic_log.ui")
         self.Dynamic_log.show()

         self.Main_Window = uic.loadUi("Main_Window.ui")
         self.Main_Window.hide()


         self.Dynamic_log.Continue_Button.clicked.connect(self.Continue2)

     def Continue2(self):

         ***self.Main_Window.addWidget(self.progress_label)***

         self.Main_Window.show()
         self.Dynamic_log.hide()



app = QtGui.QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())

三重星号是我被卡住的地方。这行代码解释了我想要实现的内容,但却返回了错误。我想使用这种方法加载.ui文件,然后仍然可以在 Main_Window 之后添加更多工具,进度条,标签按钮等。

我希望.ui文件以这种方式加载,以便更容易布局和进行更改

我之后需要添加自定义工具的原因是因为我打算运行线程,数量由用户自行决定,并且必须使用重复的工具来匹配线程数。

1 个答案:

答案 0 :(得分:0)

在没有运气的情况下寻找答案后,我自己解决了这个问题。

在pyqt4 Designer文件(Main_Window)中创建QVBoxLayout之后,我就能够以不使用uic.loadUi导入方法的方式引用它(在这种情况下参考其名称为ProgressThreads)。

工作代码如下,

class MyWindow(QWidget): 
    def __init__(self, *args): 
        QWidget.__init__(self, *args)

        self.Dynamic_log = uic.loadUi("Dynamic_log.ui")
        self.Dynamic_log.show()

        self.Main_Window = uic.loadUi("Main_Window.ui")
        self.Main_Window.hide()


        layout = self.Main_Window.ProgressThreads
        self.progress_label = QLabel(" ")
        layout.addWidget(self.progress_label)
        self.progress_label.setText('0%')




if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv)
    window = MyWindow() 
    sys.exit(app.exec_())

从QMainWindow更改为QWidget

也很有必要