繁体   English   中英

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

[英]In python, how do I open a new window by clicking a button in a main window using .py files created from .ui files made in QtDesigner?

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

任何帮助将非常感激!

您必须更改:

self.dialog = Win_Eval(self)

self.dialog = Win_Eval()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM