导入必要的PyQt5模块。
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog
import sys
创建主窗口(QMainWindow),并添加一个按钮(QPushButton)。
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 400, 300)
self.button = QPushButton('点击打开新窗口', self)
self.button.setGeometry(50, 50, 200, 50)
self.button.clicked.connect(self.show_dialog)
创建另一个窗口(QDialog)。
class Dialog(QDialog):
def __init__(self):
super().__init__()
self.setGeometry(200, 200, 400, 300)
在主窗口的按钮回调函数中实例化另一个窗口并显示出来。
def show_dialog(self):
dialog = Dialog()
dialog.exec_()
创建应用程序对象并启动。
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
完整代码如下:
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 400, 300)
self.button = QPushButton('点击打开新窗口', self)
self.button.setGeometry(50, 50, 200, 50)
self.button.clicked.connect(self.show_dialog)
def show_dialog(self):
dialog = Dialog()
dialog.exec_()
class Dialog(QDialog):
def __init__(self):
super().__init__()
self.setGeometry(200, 200, 400, 300)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
这样,当我们在主窗口中点击按钮时,就会弹出另一个窗口。