2017-04-02 94 views
0

我有两个.py文件,它们是从QtDesigner中生成的.ui文件创建的。一个是该程序的主窗口,另一个是允许用户输入信息的小部件,我将其称为“评估”小部件。在python中,如何使用在QtDesigner中创建的.ui文件创建的.py文件在主窗口中单击按钮打开一个新窗口?

我在主窗口中有一个名为“btn_StartNew”的按钮,这意味着打开窗口小部件以允许用户开始新的评估。我在打开主窗口时遇到麻烦,并将该功能添加到打开“评估”窗口小部件的“btn_StartNew”按钮中。

我现在所拥有的,当我运行代码打开两个主窗口,并在同一个窗口评估插件的代码:

import sys 
from PyQt4 import QtCore, QtGui 
from wid_Main import Ui_wid_Main 
from wid_Eval_v2 import Ui_wid_Eval 

class Win_Eval(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(Win_Eval, self).__init__(parent) 

     self.ui=Ui_wid_Eval() 
     self.ui.setupUi(self)  


class Win_Main(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(Win_Main, self).__init__(parent) 

     self.ui=Ui_wid_Main() 
     self.ui.setupUi(self) 

     #RUN "start new eval" button 
     self.ui.btn_StartNew.clicked.connect(self.btn_StartNew_click) 
     self.dialog = Win_Eval(self) 

    def btn_StartNew_click(self): 
     self.dialog.show() 


def main(): 
    app = QtGui.QApplication(sys.argv) 
    main = Win_Main() 
    main.show() 
    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 

凡wid_Main和Ui_wid_Main是主窗口文件和主窗口类, 分别。 wid_Eval_v2和Ui_wid_Eval分别是评估窗口小部件文件和类。

任何帮助将不胜感激!

回答

0

您必须更改:

self.dialog = Win_Eval(self) 

self.dialog = Win_Eval() 
+0

谢谢。这工作完美。 –

+0

如果我的答案对您有帮助,请将其标为正确 – eyllanesc

相关问题