我希望能够更改PyQt应用程序的
这段代码可以运行,但是它不能改变选项卡栏标签的填充。我试图使用样式表来改变选项卡栏的填充,但那会破坏图形绘制,使得默认的外观和感觉都不再被绘制(我不想重新实现所有的UI绘制)。
我认为我可能需要使用QProxyStyle,但我找不到在PyQt4中如何使用它的示例。编辑:看起来PyQt没有QProxyStyle,因为
请问有人能发布一个更改
QStyle::PM_TabBarTabHSpace
属性。我阅读了Qt文档中关于QStyle的内容,但我不确定如何在PyQt中正确地设置它。
非工作代码:
style = QStyleFactory.create('Cleanlooks')
style.PM_TabBarTabHSpace = 5 # 5 pixels?
app.setStyle(style)
这段代码可以运行,但是它不能改变选项卡栏标签的填充。我试图使用样式表来改变选项卡栏的填充,但那会破坏图形绘制,使得默认的外观和感觉都不再被绘制(我不想重新实现所有的UI绘制)。
我认为我可能需要使用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_()
PM_TabBarTabHSpace
。你能提供一个例子吗? - k107style.PM_TabBarTabHSpace = 5
这个片段不起作用,因为 QStyle 没有公共属性“PM_TabBarTabHSpace”。你尝试重写 pixelMetric 的第二个代码片段是正确的方法。 - Stefan Monov