2013-05-17 49 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