pyqt5 QTabBar
时间: 2023-09-15 20:23:15 浏览: 224
Qt5多行自适应TabBar
3星 · 编辑精心推荐
QTabBar是PyQt5中的一个类,用于显示选项卡,通常与QTabWidget一起使用。以下是一个简单的示例,演示如何使用QTabBar在窗口中创建多个选项卡。
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QTabBar, QWidget, QLabel, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QTabBar Example")
self.setGeometry(100, 100, 600, 400)
# 创建一个QTabWidget
self.tabs = QTabWidget(self)
self.tabs.setGeometry(10, 10, 580, 380)
# 创建三个选项卡
self.tab1 = QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
# 将三个选项卡添加到QTabWidget中
self.tabs.addTab(self.tab1, "Tab 1")
self.tabs.addTab(self.tab2, "Tab 2")
self.tabs.addTab(self.tab3, "Tab 3")
# 创建QTabBar,并将其添加到窗口中
self.tab_bar = QTabBar(self)
self.tab_bar.setGeometry(10, 10, 580, 30)
self.setCentralWidget(self.tab_bar)
# 将QTabBar与QTabWidget连接
self.tab_bar.currentChanged.connect(self.tabs.setCurrentIndex)
# 在QTabWidget的每个选项卡中添加QWidget
self.layout1 = QVBoxLayout()
self.layout1.addWidget(QLabel("This is Tab 1"))
self.tab1.setLayout(self.layout1)
self.layout2 = QVBoxLayout()
self.layout2.addWidget(QLabel("This is Tab 2"))
self.tab2.setLayout(self.layout2)
self.layout3 = QVBoxLayout()
self.layout3.addWidget(QLabel("This is Tab 3"))
self.tab3.setLayout(self.layout3)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个QTabWidget,其中包含三个选项卡。我们还创建了一个QTabBar,它将显示在窗口的顶部,并且将其与QTabWidget连接起来,以便在单击QTabBar中的选项卡时显示正确的选项卡。最后,我们在每个选项卡中添加了一个QWidget。
阅读全文