目标:通过点击主窗口中的button弹出另一个窗口页面。
首先需要注意的是,两个窗口不能是同一类型,否则会崩溃,并保存为名称不同的ui文件,并使用UIC工具转成.py文件。
因此在目前文件夹中既有mainwindow又有dialog窗体形式的界面代码。(这一切都按照常规的操作来!!!没有变化!!!)
关键的地方是驱动函数main.py
1、将主窗口与子窗口各自实例化在parentWindow和childWindow两个类中,这两个类各自继承QMainWindow和QDialog的父类:
import ...
class parentWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)#QMainWindow的初始化
self.main_ui = Ui_MainWindow()#主窗口的实例化
self.main_ui.setupUi(self)
class childWindow(QDialog):
def __init__(self):
QDialog.__init__(self)
self.child=Ui_Dialog()#子窗口的实例化
self.child.setupUi(self)
###如果是多个子窗口,创建多个对象即可,但是注意改名字。
###如self.child = Ui_Dialog2()/对应的.py文件也需要进行修改避免产生冲突。
2、后面分别再把两个窗口实例化给window和child
window=parentWindow()
child=childWindow()
3、通过定义按钮意义将两个窗体关联起来
btn=window.main_ui.pushButton_1
btn.clicked.connect(child.show)
成功实现👌