簡體   English   中英

如何在 PyQt5 的主 window 之上顯示新的 window

[英]How to show a new window on top of the main window in PyQt5

所以在def __init__(self)是我的 main_window 彈出的地方。 當點擊pushButton_addNew時,我希望Ui_Form在我的主 window 頂部彈出。 我該怎么做?

我試過這段代碼。 新的 window 彈出,但不可移動。 似乎只有小部件在那里

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
from ssis_main_UI import Ui_MainWindow
from ssis_form_UI import Ui_Form
import mysql.connector

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.initializeUI()
        self.show()
        
    def initializeUI(self):
        self.ui.pushButton_addNew.clicked.connect(self.addNew)
        
    def addNew(self):
        new = QtWidgets.QWidget(self)
        new_ui = Ui_Form()
        new_ui.setupUi(new)
        new.show()


app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())

這是我的ssis_form_UI.py代碼

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(236, 359)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("images/main_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Form.setWindowIcon(icon)
        self.header = QtWidgets.QWidget(Form)
        self.header.setGeometry(QtCore.QRect(0, 0, 240, 61))
        self.header.setStyleSheet("#header{\n"
"background-color: rgb(0, 170, 255);\n"
"}")
        self.header.setObjectName("header")
        self.formLayoutWidget = QtWidgets.QWidget(Form)
        self.formLayoutWidget.setGeometry(QtCore.QRect(19, 130, 201, 221))
        self.formLayoutWidget.setObjectName("formLayoutWidget")
        self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
        self.formLayout.setContentsMargins(5, 5, 5, 5)
        self.formLayout.setObjectName("formLayout")
        self.studentIDLabel = QtWidgets.QLabel(self.formLayoutWidget)
        self.studentIDLabel.setObjectName("studentIDLabel")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.studentIDLabel)
        self.studentIDLineEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
        self.studentIDLineEdit.setObjectName("studentIDLineEdit")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.studentIDLineEdit)
        self.firstNameLabel = QtWidgets.QLabel(self.formLayoutWidget)
        self.firstNameLabel.setObjectName("firstNameLabel")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.firstNameLabel)
        self.firstNameLineEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
        self.firstNameLineEdit.setObjectName("firstNameLineEdit")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.firstNameLineEdit)
        self.middleNameLabel = QtWidgets.QLabel(self.formLayoutWidget)
        self.middleNameLabel.setObjectName("middleNameLabel")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.middleNameLabel)
        self.middleNameLineEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
        self.middleNameLineEdit.setObjectName("middleNameLineEdit")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.middleNameLineEdit)
        self.lastNameLabel = QtWidgets.QLabel(self.formLayoutWidget)
        self.lastNameLabel.setObjectName("lastNameLabel")
        self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.lastNameLabel)
        self.lastNameLineEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
        self.lastNameLineEdit.setObjectName("lastNameLineEdit")
        self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.lastNameLineEdit)
        self.courseLabel = QtWidgets.QLabel(self.formLayoutWidget)
        self.courseLabel.setObjectName("courseLabel")
        self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.courseLabel)
        self.courseLineEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
        self.courseLineEdit.setObjectName("courseLineEdit")
        self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.courseLineEdit)
        self.yearLevelLabel = QtWidgets.QLabel(self.formLayoutWidget)
        self.yearLevelLabel.setObjectName("yearLevelLabel")
        self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.yearLevelLabel)
        self.yearLevelComboBox = QtWidgets.QComboBox(self.formLayoutWidget)
        self.yearLevelComboBox.setObjectName("yearLevelComboBox")
        self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.yearLevelComboBox)
        self.genderLabel = QtWidgets.QLabel(self.formLayoutWidget)
        self.genderLabel.setObjectName("genderLabel")
        self.formLayout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.genderLabel)
        self.genderComboBox = QtWidgets.QComboBox(self.formLayoutWidget)
        self.genderComboBox.setObjectName("genderComboBox")
        self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.genderComboBox)
        self.AddStudent = QtWidgets.QPushButton(self.formLayoutWidget)
        self.AddStudent.setObjectName("AddStudent")
        self.formLayout.setWidget(7, QtWidgets.QFormLayout.SpanningRole, self.AddStudent)
        self.label_pic = QtWidgets.QLabel(Form)
        self.label_pic.setGeometry(QtCore.QRect(70, 20, 101, 100))
        self.label_pic.setText("")
        self.label_pic.setPixmap(QtGui.QPixmap("images/changeusername_icon.png"))
        self.label_pic.setScaledContents(True)
        self.label_pic.setWordWrap(False)
        self.label_pic.setObjectName("label_pic")
        self.pushButton_editPic = QtWidgets.QPushButton(Form)
        self.pushButton_editPic.setGeometry(QtCore.QRect(170, 90, 31, 23))
        self.pushButton_editPic.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("images/edit_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_editPic.setIcon(icon1)
        self.pushButton_editPic.setFlat(True)
        self.pushButton_editPic.setObjectName("pushButton_editPic")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Add New"))
        self.studentIDLabel.setText(_translate("Form", "studentID"))
        self.firstNameLabel.setText(_translate("Form", "First Name"))
        self.middleNameLabel.setText(_translate("Form", "Middle Name"))
        self.lastNameLabel.setText(_translate("Form", "Last Name"))
        self.courseLabel.setText(_translate("Form", "Course"))
        self.yearLevelLabel.setText(_translate("Form", "Year Level"))
        self.genderLabel.setText(_translate("Form", "Gender"))
        self.AddStudent.setText(_translate("Form", "Add Student"))

沒關系,我已經知道怎么做了。 這是我發現的

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from ssis_main_UI import Ui_MainWindow
import addStudent

class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton_addNew.clicked.connect(self.goto_addStudent)

    def goto_addStudent(self):
        self.a = AddStudent()
        self.a.show()


class AddStudent(QtWidgets.QMainWindow, addStudent.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.setupUi(self)


app = QtWidgets.QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM