qt的tabWidget切换页信号
时间: 2023-11-14 17:06:45 浏览: 664
QTabWidget类提供了两个与切换页相关的信号:currentChanged和tabBarClicked。
1. currentChanged(int index):当当前选项卡的索引发生改变时,会发出currentChanged信号。index参数表示当前选项卡的索引。
2. tabBarClicked(int index):当用户单击选项卡时,会发出tabBarClicked信号。index参数表示被单击选项卡的索引。
以下是一个简单的示例,演示如何使用这两个信号:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTabWidget, QVBoxLayout, QLabel
class TabWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Tab Widget')
# 创建一个QTabWidget对象
tab_widget = QTabWidget()
# 创建三个QWidget对象
widget1 = QWidget()
widget2 = QWidget()
widget3 = QWidget()
# 将三个QWidget对象添加到QTabWidget中
tab_widget.addTab(widget1, 'Tab 1')
tab_widget.addTab(widget2, 'Tab 2')
tab_widget.addTab(widget3, 'Tab 3')
# 为每个选项卡添加一个标签
label1 = QLabel('This is Tab 1')
label2 = QLabel('This is Tab 2')
label3 = QLabel('This is Tab 3')
vbox1 = QVBoxLayout()
vbox1.addWidget(label1)
widget1.setLayout(vbox1)
vbox2 = QVBoxLayout()
vbox2.addWidget(label2)
widget2.setLayout(vbox2)
vbox3 = QVBoxLayout()
vbox3.addWidget(label3)
widget3.setLayout(vbox3)
# 创建一个垂直布局,并将QTabWidget添加到布局中
vbox = QVBoxLayout()
vbox.addWidget(tab_widget)
self.setLayout(vbox)
# 连接currentChanged信号到槽函数on_current_changed
tab_widget.currentChanged.connect(self.on_current_changed)
# 连接tabBarClicked信号到槽函数on_tab_bar_clicked
tab_widget.tabBarClicked.connect(self.on_tab_bar_clicked)
# 显示窗口
self.show()
def on_current_changed(self, index):
print('Current tab index:', index)
def on_tab_bar_clicked(self, index):
print('Clicked tab index:', index)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = TabWidget()
sys.exit(app.exec_())
```
在上面的示例代码中,我们创建了一个QTabWidget对象,并将三个QWidget对象添加到其中。我们还为每个选项卡添加了一个标签。我们连接了currentChanged信号和tabBarClicked信号到两个槽函数on_current_changed和on_tab_bar_clicked。每当选项卡的索引发生改变或用户单击选项卡时,这两个槽函数都会被调用,并输出选项卡的索引到控制台。
阅读全文