写在前面
本人是一名刚刚自学了一点点qt的小白,仅仅在此提供一种解决方法,以供参考和后续查阅,如果有问题希望各位斧正!感谢。
问题背景
在设计ui的过程中,通常一个窗口是不够的,往往需要多个窗口进行联动,那么进行合理的界面跳转就很有必要了。通常会使用按钮配合激活函数(clicked)来进行窗口跳转
解决方法
第一步:使用QT designer 来设计两个窗口。
一个是
MainWindow,一个是(我选的是Widget)。
在MainWindow随意添加控件后,添加一个转换窗口的按钮(生成)。
再设计widget的子窗口
第二步:转换成py文件
使用pyuic5,选中刚才保存的两个窗口qt文件就可以进行转换了。
第三步:编写驱动函数
下面展示一些 内联代码片
。
from UI.child import *
from UI.graph import *
from PyQt5.QtWidgets import QApplication,QWidget,QMainWindow,QMessageBox
import sys
#这是child类
class child(QWidget,Ui_Form):
def __init__(self,parent=None):
super(child, self).__init__(parent)
self.setupUi(self)
#这是主窗口类
class graph(QMainWindow,Ui_MainWindow):
def __init__(self,parent=None):
super(graph, self).__init__(parent)
self.setupUi(self)
#self.pushButton.clicked.connect()
app=QApplication(sys.argv)
my_main=graph()
my_main.show()
#创建一个子窗口类对象
my_child=child()
然后对主窗口对象的按钮进行连接
my_main.pushButton.clicked.connect(my_child.show)
sys.exit(app.exec_())
必须将调用子窗口类的内容放在驱动里而不是主窗口的类中(我不知道为啥,但我好像只能这样)
第四步:运行代码
总结
通过qtdesigner 设计窗口,并转化成py文件。然后定义主窗口和子窗口的类,在main函数中生成两个类的对象,并将主窗口的按钮通过clicked.connect来连接到子窗口上。