pyQT5实现:创建一个选项卡弹窗,用于选择是否继续运行
时间: 2024-06-10 14:10:23 浏览: 137
PyQt5基础-创建对话框,简述了PyQt5使用过程,使用QtWidgets、QPushButton类说明
以下是一个简单的pyQT5代码示例,用于创建一个选项卡弹窗,询问用户是否继续运行。
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTabWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton
class TabDialog(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('选项卡弹窗')
self.setGeometry(300, 300, 300, 200)
# 创建选项卡控件
self.tab_widget = QTabWidget()
self.tab_widget.addTab(ConfirmTab(), '确认')
self.tab_widget.addTab(CancelTab(), '取消')
# 创建垂直布局
vbox = QVBoxLayout()
vbox.addWidget(self.tab_widget)
# 设置窗口布局
self.setLayout(vbox)
class ConfirmTab(QWidget):
def __init__(self):
super().__init__()
# 创建水平布局
hbox = QHBoxLayout()
# 创建标签和按钮
label = QLabel('是否继续运行?')
confirm_button = QPushButton('确认')
confirm_button.clicked.connect(self.confirm_action)
# 将标签和按钮添加到水平布局中
hbox.addWidget(label)
hbox.addWidget(confirm_button)
# 设置当前选项卡布局
self.setLayout(hbox)
def confirm_action(self):
print('确认')
QApplication.quit()
class CancelTab(QWidget):
def __init__(self):
super().__init__()
# 创建水平布局
hbox = QHBoxLayout()
# 创建标签和按钮
label = QLabel('是否取消运行?')
cancel_button = QPushButton('取消')
cancel_button.clicked.connect(self.cancel_action)
# 将标签和按钮添加到水平布局中
hbox.addWidget(label)
hbox.addWidget(cancel_button)
# 设置当前选项卡布局
self.setLayout(hbox)
def cancel_action(self):
print('取消')
QApplication.quit()
if __name__ == '__main__':
app = QApplication(sys.argv)
dialog = TabDialog()
dialog.show()
sys.exit(app.exec_())
```
在上面的代码中,我们首先创建一个继承自QWidget的TabDialog类,用于显示选项卡弹窗。在TabDialog类的构造函数中,我们创建一个QTabWidget控件,并将两个自定义的选项卡(ConfirmTab和CancelTab)添加到其中。
接下来,我们为每个选项卡创建一个继承自QWidget的子类(ConfirmTab和CancelTab)。在这些子类中,我们使用QHBoxLayout布局来创建一个标签和一个按钮,并将它们添加到水平布局中。然后,我们将这个水平布局设置为当前选项卡的布局。
最后,我们在按钮的clicked信号中连接一个槽函数,以响应用户的操作。在这个示例中,我们只是简单地打印出用户的选择,然后退出应用程序。
阅读全文