pyQT5实现:在主窗口按下按钮会弹出一个选项卡弹窗,用于选择是否继续运行
时间: 2024-04-29 07:25:43 浏览: 113
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
以下是一个简单的示例代码,实现了在主窗口按下按钮会弹出一个选项卡弹窗,用于选择是否继续运行的功能:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QVBoxLayout, QPushButton, QMessageBox
class MainWidget(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Main Window')
self.setGeometry(100, 100, 300, 200)
# 添加按钮
btn = QPushButton('点击弹出选项卡', self)
btn.setGeometry(50, 50, 200, 50)
btn.clicked.connect(self.showOptions)
def showOptions(self):
# 创建选项卡弹窗
optionsWidget = QTabWidget()
# 添加选项卡
tab1 = QWidget()
tab1Layout = QVBoxLayout()
tab1Layout.addWidget(QPushButton('继续运行'))
tab1.setLayout(tab1Layout)
tab2 = QWidget()
tab2Layout = QVBoxLayout()
tab2Layout.addWidget(QPushButton('取消运行'))
tab2.setLayout(tab2Layout)
optionsWidget.addTab(tab1, '继续运行')
optionsWidget.addTab(tab2, '取消运行')
# 显示选项卡弹窗
result = optionsWidget.exec_()
# 根据用户选择执行相应操作
if result == 0:
print('用户选择继续运行')
else:
print('用户选择取消运行')
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWidget = MainWidget()
mainWidget.show()
sys.exit(app.exec_())
```
在这个示例代码中,我们创建了一个名为 `MainWidget` 的主窗口类,其中包含一个按钮。按下按钮后,会弹出一个选项卡弹窗。如果用户选择继续运行,程序会打印出一条消息。如果用户选择取消运行,程序会关闭主窗口。
选项卡弹窗的创建和显示是通过以下代码实现的:
```python
# 创建选项卡弹窗
optionsWidget = QTabWidget()
# 添加选项卡
tab1 = QWidget()
tab1Layout = QVBoxLayout()
tab1Layout.addWidget(QPushButton('继续运行'))
tab1.setLayout(tab1Layout)
tab2 = QWidget()
tab2Layout = QVBoxLayout()
tab2Layout.addWidget(QPushButton('取消运行'))
tab2.setLayout(tab2Layout)
optionsWidget.addTab(tab1, '继续运行')
optionsWidget.addTab(tab2, '取消运行')
# 显示选项卡弹窗
result = optionsWidget.exec_()
```
我们首先创建了一个 `QTabWidget` 对象,然后向其中添加了两个选项卡,并为每个选项卡添加了一个按钮。最后,我们调用 `exec_()` 方法显示选项卡弹窗,并将用户的选择结果保存在 `result` 变量中。
根据用户的选择结果,我们可以执行相应的操作。在这个示例代码中,我们使用了以下代码来处理用户的选择:
```python
# 根据用户选择执行相应操作
if result == 0:
print('用户选择继续运行')
else:
print('用户选择取消运行')
self.close()
```
如果用户选择继续运行,程序会打印出一条消息。如果用户选择取消运行,程序会关闭主窗口。
阅读全文