在PyQt中,可以通过以下步骤在主窗口中打开和关闭新窗口:
- 导入必要的模块:from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton
- 创建主窗口类(Main Window Class):class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
self.setGeometry(100, 100, 300, 200)
- 创建新窗口类(New Window Class):class NewWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("新窗口")
self.setGeometry(200, 200, 300, 200)
- 在主窗口类中添加打开新窗口的方法:class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
self.setGeometry(100, 100, 300, 200)
def open_new_window(self):
self.new_window = NewWindow()
self.new_window.show()
- 在主窗口类中添加关闭新窗口的方法:class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
self.setGeometry(100, 100, 300, 200)
def open_new_window(self):
self.new_window = NewWindow()
self.new_window.show()
def close_new_window(self):
self.new_window.close()
- 在主窗口类中创建按钮,并连接打开和关闭新窗口的方法:class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
self.setGeometry(100, 100, 300, 200)
self.open_button = QPushButton("打开新窗口", self)
self.open_button.clicked.connect(self.open_new_window)
self.open_button.setGeometry(50, 50, 200, 30)
self.close_button = QPushButton("关闭新窗口", self)
self.close_button.clicked.connect(self.close_new_window)
self.close_button.setGeometry(50, 100, 200, 30)
- 创建应用程序对象,并运行主窗口:if __name__ == "__main__":
app = QApplication([])
main_window = MainWindow()
main_window.show()
app.exec_()
这样,当点击主窗口中的"打开新窗口"按钮时,会打开一个新窗口;当点击主窗口中的"关闭新窗口"按钮时,会关闭新窗口。