работа с классом QTabWidget , размещение вкладок
Есть панель со вкладками (их всего три), как сделать чтобы вкладка номер 3 было сверху как вот здесь:

Буду очень благодарен
Код:
from PyQt5 import QtCore, QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("Класс QTabWidget")
window.resize(400, 150)
tab = QtWidgets.QTabWidget()
tab.addTab(QtWidgets.QLabel("Содержимое вкладки 1"),
"Вкладка 1")
tab.addTab(QtWidgets.QLabel("Содержимое вкладки 2"),
"Вкладка 2")
tab.addTab(QtWidgets.QLabel("Содержимое вкладки 3"),
"Вкладка 3")
tab.setElideMode(QtCore.Qt.ElideLeft)
tab.setCurrentIndex(0)
vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(tab)
window.setLayout(vbox)
window.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант:
from PyQt5.Qt import *
class TabBar(QTabBar):
def tabSizeHint(self, index):
size = QTabBar.tabSizeHint(self, index)
w = int(self.width()/self.count())
return QSize(w, size.height())
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.tabwidget = QTabWidget()
self.tabwidget.setTabBar(TabBar())
self.tabwidget.setMovable(True)
self.tabwidget.setDocumentMode(True)
self.tabwidget.setElideMode(Qt.ElideRight)
self.tabwidget.setUsesScrollButtons(True)
self.setCentralWidget(self.tabwidget)
for name in ("Имя компьютера", "Оборудование"):
self.create_widgets(name)
def create_widgets(self, name):
w = QMainWindow()
self.tabwidget.addTab(w, name)
tab = QTabWidget()
tab.setTabBar(TabBar())
tab.setMovable(True)
tab.setDocumentMode(True)
tab.setElideMode(Qt.ElideRight)
tab.setUsesScrollButtons(True)
w.setCentralWidget(tab)
for i in ["Дополнительно", "Защита системы", "Удаленный доступ"]: # range(5):
tab.addTab(QWidget(), "{}".format(i))
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
app.setFont(QFont("Times", 12, QFont.Bold))
w = MainWindow()
w.resize(700, 200)
w.show()
sys.exit(app.exec_())
