在python中,如何使用在QtDesigner中创建的.ui文件创建的.py文件,单击主窗口中的按钮来打开新窗口?

时间:2017-04-02 18:04:33

标签: python pyqt pyqt4

我有两个从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分别是评估小部件文件和类。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你必须改变:

self.dialog = Win_Eval(self)

self.dialog = Win_Eval()