写一段pyqt5使用主窗口建立新窗口的代码
时间: 2023-09-13 16:05:26 浏览: 90
### 回答1:
以下是使用PyQt5在主窗口中创建一个新窗口的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Main Window")
self.setGeometry(100, 100, 400, 300)
# 创建按钮并添加到主窗口
button = QPushButton('Open New Window', self)
button.move(150, 150)
button.clicked.connect(self.openNewWindow)
def openNewWindow(self):
# 创建新窗口
self.newWindow = QWidget()
self.newWindow.setWindowTitle("New Window")
self.newWindow.setGeometry(200, 200, 300, 200)
# 在新窗口中添加标签
label = QLabel('This is a new window', self.newWindow)
label.move(50, 50)
# 显示新窗口
self.newWindow.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个名为MainWindow的主窗口,它包含一个名为'Open New Window'的按钮。当用户单击按钮时,会调用openNewWindow()方法,该方法会创建一个新窗口,并在其中添加一个标签。新窗口被存储在MainWindow实例的属性newWindow中,并通过调用show()方法来显示。
### 回答2:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
self.setGeometry(100, 100, 400, 300)
self.btn_open = QPushButton("打开新窗口", self)
self.btn_open.clicked.connect(self.open_new_window)
self.btn_open.setGeometry(100, 100, 200, 50)
def open_new_window(self):
self.new_window = NewWindow()
self.new_window.show()
class NewWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("新窗口")
self.setGeometry(200, 200, 300, 200)
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
上面的代码是一个使用PyQt5库的程序,用来创建一个主窗口并且可以从主窗口打开一个新窗口。在代码中,首先定义了一个MainWindow类,继承自QMainWindow类,用来创建主窗口。在主窗口的构造函数__init__中,设置了主窗口的标题和大小,并且创建了一个按钮用于打开新窗口。按钮被点击时,会调用open_new_window方法,该方法会创建一个新窗口对象NewWindow,并显示新窗口。
NewWindow类继承自QWidget类,用来创建新窗口。在新窗口的构造函数__init__中,设置了新窗口的标题和大小。
在代码的最后部分,创建了一个QApplication对象app和MainWindow对象main_window,并且通过调用show方法显示主窗口。最后通过调用app.exec_()进入Qt事件循环,等待事件的触发以及处理,直到程序退出。
### 回答3:
首先,我们需要导入所需的库,即PyQt5库。
使用PyQt5创建主窗口并主窗口展示时,我们可以添加一个按钮来打开新窗口。为了实现这一功能,我们需要定义一个新窗口类。
下面是一段演示代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("主窗口")
self.setGeometry(100, 100, 300, 200)
button = QPushButton("打开新窗口", self)
button.clicked.connect(self.open_new_window)
button.setGeometry(100, 50, 100, 50)
def open_new_window(self):
self.new_window = NewWindow()
self.new_window.show()
class NewWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("新窗口")
self.setGeometry(200, 200, 300, 200)
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
在上面的代码中,我们创建了一个继承自QMainWindow的主窗口类MainWindow,并在该类中添加了一个按钮。当按钮被点击时,会调用open_new_window方法,该方法会新建一个继承自QWidget的新窗口类NewWindow的实例,并显示出来。
我们通过应用程序主循环(app.exec_())来保持程序的运行状态,并且在退出主窗口后,关闭应用程序。
阅读全文