问题描述:
想使用PyQt5 点击后弹出一个新窗口
思路:
0: 首先得绘制一个窗口
1: 一个点击按钮 【 初始化 —> 布局 —> 触发新窗口 】
2: 引入另外一个文件的窗口展示 【 这个窗口也可以单独运行 】
图片演示:
代码:
这个方法,指向新的文件 layout1
def layoutFn(self):
"""
想要有新的窗口, 引用其它已经写好的类
"""
import layout1 # 这个是可以单独运行的窗口
self.one = layout1.Layout1()
self.one.show()
layout1.py 这个文件也可以单独运行
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication ,QWidget ,QFormLayout , QLineEdit, QLabel
class Layout1(QWidget):
def __init__(self,parent=None):
super(Layout1,self).__init__(parent)
self.setWindowTitle("排列组合")
self.resize(400, 100)
fromlayout = QFormLayout()
labl1 = QLabel("标签1")
lineEdit1 = QLineEdit()
labl2 = QLabel("标签2")
lineEdit2 = QLineEdit()
labl3 = QLabel("标签3")
lineEdit3 = QLineEdit()
fromlayout.addRow(labl1, lineEdit1)
fromlayout.addRow(labl2, lineEdit2)
fromlayout.addRow(labl3, lineEdit3)
self.setLayout(fromlayout)
def closeEvent(self, event):
reply = QtWidgets.QMessageBox.question(self, '警告', '退出后测试将停止,你确认要退出吗?', QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == "__main__":
app = QApplication(sys.argv)
form = Layout1()
form.show()
sys.exit(app.exec_())
图示的完整代码:
主文件:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'd:\python code\07ClassRoom.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# 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.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox, QPushButton, QFormLayout, QLineEdit, QWidget
class Ui_classRoom(object):
def createTable(self, columnNmb, rowsNmb):
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(90, 70, 500, 300))
self.tableWidget.setMinimumSize(QtCore.QSize(480, 0))
self.tableWidget.setShowGrid(False)
self.tableWidget.setGridStyle(QtCore.Qt.DashLine)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(columnNmb)
self.tableWidget.setRowCount(self)
for i in range(columnNmb): # 生产纵向 item
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore