Я бы хотел изменить свойство QStyle::PM_TabBarTabHSpace
для приложения PyQt. Я прочитал документ Qt для QStyle , но я не уверен, как правильно установить это в PyQt.
Нерабочий код:
style = QStyleFactory.create('Cleanlooks')
style.PM_TabBarTabHSpace = 5 # 5 pixels?
app.setStyle(style)
Этот код выполняется, но он не меняет отступы на вкладках панели вкладок. Я пытался использовать таблицы стилей для изменения отступов панели вкладок, но это разрушает графический рисунок, так что ничто из стандартного внешнего вида не прорисовывается (я не хочу переопределять весь рисунок пользовательского интерфейса).
Я думаю, что мне может понадобиться использовать QProxyStyle , но я не могу найти примеров того, как использовать это в PyQt4. Редактировать: Похоже, что PyQt не имеет QProxyStyle, так как from PyQt4.QtGui import QProxyStyle
не удается.
Может кто-нибудь выложить пример изменения значения PM_TabBarTabHSpace
? Спасибо.
Редактировать Вот код скелета. Изменение значения PM_TabBarTabHSpace ничего не делает. (
from PyQt4.QtGui import (QApplication, QTabWidget, QWidget,
QStyle, QStyleFactory)
def myPixelMetric(self, option=None, widget=None):
if option == QStyle.PM_TabBarTabHSpace:
return 200 # pixels
else:
return QStyle.pixelMetric(option, widget)
style = QStyleFactory.create('Windows')
style.pixelMetric = myPixelMetric
app = QApplication('test -style Cleanlooks'.split())
# Override style
app.setStyle(style)
tab = QTabWidget()
tab.addTab(QWidget(), 'one')
tab.addTab(QWidget(), 'two')
tab.show()
app.exec_()