-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtabbar_demo.py
60 lines (47 loc) · 1.96 KB
/
tabbar_demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding: utf-8 -*-
import sys
from PySide2.QtWidgets import QApplication, QWidget, QTabWidget, QHBoxLayout, QRadioButton, QLabel, QComboBox, \
QButtonGroup
from ..gui.misc import TabBar
from ..gui.container import ComponentManager
class TabBarDemo(QWidget):
PositionText = ["East", "West", "South", "North"]
Positions = [QTabWidget.East, QTabWidget.West, QTabWidget.South, QTabWidget.North]
def __init__(self, parent=None):
super(TabBarDemo, self).__init__(parent)
layout = QHBoxLayout()
vertical = QRadioButton("Vertical")
vertical.setChecked(True)
vertical.setProperty("name", "vertical")
horizontal = QRadioButton("Horizontal")
horizontal.setProperty("name", "horizontal")
direction = QButtonGroup()
direction.addButton(vertical)
direction.addButton(horizontal)
position = QComboBox()
position.setProperty("name", "position")
position.addItems(self.PositionText)
layout.addWidget(QLabel("TabBar direction:"))
layout.addWidget(vertical)
layout.addWidget(horizontal)
layout.addWidget(QLabel("TabBar position:"))
layout.addWidget(position)
self.tabs = QTabWidget()
self.setLayout(layout)
self.manager = ComponentManager(layout)
self.manager.dataChanged.connect(self.slotCreateTabWidget)
def slotCreateTabWidget(self):
settings = self.manager.getData("name")
width, height = (25, 75) if settings.get("vertical") else (75, 25)
self.tabs = QTabWidget()
self.tabs.setTabBar(TabBar(width=width, height=height))
for i in range(5):
page = QLabel("Area #{}".format(i))
self.tabs.addTab(page, "Tab{}".format(i))
self.tabs.setTabPosition(self.Positions[settings.get("position")])
self.tabs.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = TabBarDemo()
widget.show()
sys.exit(app.exec_())