QTabBar не раскрывает полностью и не закрывает вкладки одинаково

Я хочу, чтобы панель вкладок расширялась над пустым пространством до правого. И лучше всего было бы, если бы все вкладки имели одинаковую ширину. Я не знаю, как это сделать, так как мои таблицы стилей не работают, и я не могу найти вариант в документах.

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtGui,QtCore
import sys

class Main(QWidget):
    def __init__(self,parent=None):
        QWidget.__init__(self)
        self.setFixedSize(600,500)

        self.tabBar=QTabBar(self)
        self.tabBar.setStyleSheet("QTabBar{width:400px;}")
        self.tabBar.setExpanding(True)

        self.layout=QVBoxLayout(self)
        self.layout.addWidget(self.tabBar)

        self.tabBar.addTab("Kontext Menu")
        self.tabBar.addTab("Settings in detail")
        self.tabBar.addTab("Help and tips")
        self.tabBar.addTab("About")
        self.tabBar.addTab("Credits")

        self.show()

if __name__ == '__main__':
    app=QApplication(sys.argv)
    sd=Main()
    app.exec()

У меня есть идея, так как диалог должен иметь фиксированный размер, что можно рассчитать ширину каждой вкладки как Totalwidth/(Количество вкладок), но все же я не знаю, как определить ширину каждой вкладки...

1 ответ

Решение

Вы можете расширить вкладки, используя void setExpanding(bool enabled), Подробности смотрите в документации:

http://qt-project.org/doc/qt-5.1/qtwidgets/qtabbar.html

Кроме того, вам нужно будет использовать правильный синтаксис стиля, потому что вам, кажется, не хватает правильной области видимости, то есть части ":: tab".

Кроме того, вам нужно будет установить таблицу стилей на QTabWidget сам в отличие от QTabBar, Поначалу это может показаться немного странным, но это правильный способ достичь того, чего вы хотите.

Здесь вы можете найти код, который вы должны написать:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtGui,QtCore
import sys

class Main(QWidget):
    def __init__(self,parent=None):
        QWidget.__init__(self)
        self.setFixedSize(600,500)

        self.tabBar=QTabBar(self)
        self.tabBar.setStyleSheet("QTabBar::tab{width:400px;}")
        self.tabBar.setExpanding(True)

        self.layout=QVBoxLayout(self)
        self.layout.addWidget(self.tabBar)

        self.tabBar.addTab("Kontext Menu")
        self.tabBar.addTab("Settings in detail")
        self.tabBar.addTab("Help and tips")
        self.tabBar.addTab("About")
        self.tabBar.addTab("Credits")

        self.show()

if __name__ == '__main__':
    app=QApplication(sys.argv)
    sd=Main()
    app.exec()
Другие вопросы по тегам