34 lines
1.0 KiB
Python
Executable File
34 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
from PyQt5 import QtGui, QtWidgets
|
|
|
|
|
|
class TabBar(QtWidgets.QTabBar):
|
|
def paintEvent(self, event):
|
|
painter = QtWidgets.QStylePainter(self)
|
|
option = QtWidgets.QStyleOptionTab()
|
|
for index in range(self.count()):
|
|
self.initStyleOption(option, index)
|
|
bgcolor = QtGui.QColor(self.tabText(index))
|
|
option.palette.setColor(QtGui.QPalette.Window, bgcolor)
|
|
painter.drawControl(QtWidgets.QStyle.CE_TabBarTabShape, option)
|
|
painter.drawControl(QtWidgets.QStyle.CE_TabBarTabLabel, option)
|
|
|
|
|
|
class Window(QtWidgets.QTabWidget):
|
|
def __init__(self):
|
|
QtWidgets.QTabWidget.__init__(self)
|
|
self.setTabBar(TabBar(self))
|
|
for color in "tomato orange yellow lightgreen skyblue plum".split():
|
|
self.addTab(QtWidgets.QWidget(self), color)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
|
|
app = QtWidgets.QApplication(sys.argv)
|
|
window = Window()
|
|
window.resize(420, 200)
|
|
window.show()
|
|
sys.exit(app.exec_())
|