我好久没写pyqt的东西了,突然有个朋友问我,窗口之间的调用如何,有例子吗?于是我网上找了一下,觉得很多人写的都比较乱,找了一会,没找到好的,于是就打算自己写,还花了一点的时间,于是写下来,以后自己可能会用到,也希望能帮助别人
window1.py
#窗口1---主窗口代码,这个代码比较长from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sys#调用其他文件,例如 from xx文件夹.xx文件 import xxx类或函数(文件不加后缀)#如果在同一个文件夹下面就更好办了 from xxx文件名 import xxx类或函数(文件不加后缀)#from 平时.window2 import main_w2#from 平时.window3 import main_w3from window2 import main_w2from window3 import main_w3#主窗口1class main_w1(QMainWindow):def __init__(self):super().__init__()self.main_UI()self.button_UI()def main_UI(self):#设置窗口大小self.setFixedSize(400,400)#设置窗口名称self.setWindowTitle("窗口1")#设置窗口的图片#self.setWindowIcon(QIcon("xxx.png"))#设置一个主窗口self.main_wight = QWidget()#设置一个主窗口布局--我比较喜欢网格布局self.main_layout = QGridLayout()#将窗口加入布局self.main_wight.setLayout(self.main_layout)#将这个主窗口设置成窗口主部件self.setCentralWidget(self.main_wight)def button_UI(self):#在这里设置窗口的内容self.button_widght1 = QWidget()self.button_widght2 = QWidget()#设置一个水平布局self.button_layout1 = QHBoxLayout()self.button_layout2 = QHBoxLayout()#将窗口加入布局self.button_widght1.setLayout(self.button_layout1)self.button_widght2.setLayout(self.button_layout2)#设置几个按钮用做调用其他窗口self.button1 = QPushButton("调用窗口1")self.button2 = QPushButton("调用窗口2")self.button3 = QPushButton("调用窗口3")#设置几个按钮留白self.button11 = QPushButton("这个一个按钮1")self.button12 = QPushButton("这个一个按钮2")self.button13 = QPushButton("这个一个按钮3")#将按钮加入布局self.button_layout1.addWidget(self.button1)self.button_layout1.addWidget(self.button2)self.button_layout1.addWidget(self.button3)self.button_layout2.addWidget(self.button11)self.button_layout2.addWidget(self.button12)self.button_layout2.addWidget(self.button13)#将两个按钮窗口加入主窗口self.main_layout.addWidget(self.button_widght1)self.main_layout.addWidget(self.button_widght2)#按钮链接函数--不链接的按钮没有用处,如下三个按钮是动不了的self.button1.clicked.connect(self.Tow1)self.button1.clicked.connect(self.close)#这个是顺便关闭原来的窗口,self.button2.clicked.connect(self.Tow2)self.button2.clicked.connect(self.close)#不加则原来的窗口不会关闭self.button3.clicked.connect(self.Tow3)self.button3.clicked.connect(self.close)#不需要的可以注释掉def Tow1(self):#做好其他窗口后先import进来后就简单调用就ok了self.w1 = main_w1()self.w1.show()def Tow2(self):#做好其他窗口后先import进来后就简单调用就ok了self.w2 = main_w2()self.w2.show()def Tow3(self):#做好其他窗口后先import进来后就简单调用就ok了self.w3 = main_w3()self.w3.show()if __name__ == "__main__":app = QApplication(sys.argv)gui = main_w1()gui.show()sys.exit(app.exec_())
window2.py
#这个代码短,只是做一个窗口用而已from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sys#主窗口1class main_w2(QMainWindow):def __init__(self):super().__init__()self.main_UI()def main_UI(self):#设置窗口大小self.setFixedSize(1100,400)#设置窗口名称self.setWindowTitle("窗口2")#设置窗口的图片#self.setWindowIcon(QIcon("xxx.png"))#设置一个主窗口self.main_wight = QWidget()#设置一个主窗口布局--我比较喜欢网格布局self.main_layout = QGridLayout()#将窗口加入布局self.main_wight.setLayout(self.main_layout)#将这个主窗口设置成窗口主部件self.setCentralWidget(self.main_wight)if __name__ == "__main__":app = QApplication(sys.argv)gui = main_w2()gui.show()sys.exit(app.exec_())
window3
#这个也比较短,只做窗口显示用from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sys#主窗口1class main_w3(QMainWindow):def __init__(self):super().__init__()self.main_UI()def main_UI(self):#设置窗口大小self.setFixedSize(400,800)#设置窗口名称self.setWindowTitle("窗口3")#设置窗口的图片#self.setWindowIcon(QIcon("xxx.png"))#设置一个主窗口self.main_wight = QWidget()#设置一个主窗口布局--我比较喜欢网格布局self.main_layout = QGridLayout()#将窗口加入布局self.main_wight.setLayout(self.main_layout)#将这个主窗口设置成窗口主部件self.setCentralWidget(self.main_wight)if __name__ == "__main__":app = QApplication(sys.argv)gui = main_w3()gui.show()sys.exit(app.exec_())
这个地方加一下我以前玩pyqt5参考的些链接
1 一些基础+高级控件+布局的使用 /jia666666/category_9278208.html2 一些代码例子教程 基础+提高 /archives/category/guidevelop/pyqt5_basic/