由ui文件转化而来的py文件:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(160, 50, 181, 21))
self.lineEdit.setObjectName("lineEdit")
self.textEdit = QtWidgets.QTextEdit(Form)
self.textEdit.setGeometry(QtCore.QRect(160, 90, 181, 87))
self.textEdit.setObjectName("textEdit")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(80, 50, 72, 15))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(80, 100, 72, 15))
self.label_2.setObjectName("label_2")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(140, 230, 93, 28))
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "输入姓名"))
self.label_2.setText(_translate("Form", "信息"))
self.pushButton.setText(_translate("Form", "确定"))
和
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'subwindow.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.textEdit = QtWidgets.QTextEdit(Form)
self.textEdit.setGeometry(QtCore.QRect(90, 80, 171, 121))
self.textEdit.setObjectName("textEdit")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
主文件(示例了主窗口如何调用子窗口,以及为按钮设计和关联相应的函数)
import mainwindow
import PyQt5.QtWidgets as QtWidgets
import subwindow
class Subwindow(QtWidgets.QDialog, subwindow.Ui_Form): #子窗口必须继承自QDialog类
def __init__(self, parent=None):
super(Subwindow,self).__init__(parent)
self.setupUi(self)
self.parent=parent
self.textEdit.setText(self.parent.lineEdit.text())
print(self.parent.lineEdit.text()) #子窗口获取主窗口数据
class Mwindow(QtWidgets.QWidget, mainwindow.Ui_Form):
def __init__(self):
super(Mwindow, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.print) #按钮和函数关联
self.subwindow=None
def print(self): #主窗口编写函数
self.lineEdit.setText('tom')
self.textEdit.setText('age:22\nsex:man\nschool:ustc\n')
self.subwindow=Subwindow(self)
self.subwindow.show() #显示子窗口
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Mwindow()
w.show()
sys.exit(app.exec_())