2013-05-17 34 views
0
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之后。PyQt4添加标签loadUi

我想要这的.ui文件,它更容易布局,并加载这样的理由改变

我的理由需要添加自定义工具,后来是因为我打算运行的线程,数量处于必须使用户自行决定和复制工具来匹配线程数量。

回答

0

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

在pyqt4设计器文件(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