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()