PySide6.QtWidgets.QProxyStyle¶
- class QProxyStyle¶
QProxyStyle
类是一个便利类,它简化了动态覆盖QStyle
元素的过程。更多…概要¶
方法¶
def
__init__()
def
baseStyle()
def
setBaseStyle()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
一个
QProxyStyle
包装了一个QStyle
(通常是默认的系统样式),目的是为了动态地覆盖绘制或其他特定的样式行为。以下示例展示了如何在任何平台上覆盖快捷方式下划线行为:
from textedit import * from PySide6.QtWidgets import QApplication from PySide6.QtWidgets import QProxyStyle class MyProxyStyle(QProxyStyle): # public int styleHint(StyleHint hint, QStyleOption option = None, widget = None, QStyleHintReturn returnData = None) override() if hint == QStyle.SH_UnderlineShortcut: return 0 return QProxyStyle.styleHint(hint, option, widget, returnData) if __name__ == "__main__": Q_INIT_RESOURCE(textedit) a = QApplication(argc, argv) a.setStyle(MyProxyStyle()) mw = TextEdit() mw.resize(700, 800) mw.show() #...
警告:由Qt提供的
common styles
将遵循此提示,因为它们调用了proxy()
,但不能保证用户定义或系统控制的样式会调用proxy()
。例如,在Mac上,菜单由操作系统处理,这将不起作用。当代理样式应仅设置在特定的小部件上时,您必须确保不在由
style()
返回的全局应用程序样式上设置代理。您必须为小部件创建一个单独的自定义样式,类似于:... proxy = MyProxyStyle(QApplication.style().name()) proxy.setParent(widget) # take ownership to avoid memleak widget.setStyle(proxy) ...
另请参阅
构造一个
QProxyStyle
对象,用于覆盖指定style
中的行为,如果未指定style
,则覆盖默认的本地style
。style
的所有权被转移到QProxyStyle
。- __init__(key)
- Parameters:
key – str
构造一个
QProxyStyle
对象,用于覆盖由样式key
指定的基础样式中的行为,或者如果指定的样式key
未被识别,则覆盖当前application style
中的行为。另请参阅
返回代理基础样式对象。如果代理样式上没有设置基础样式,
QProxyStyle
将创建应用程序样式的实例。另请参阅
设置应代理的基本样式。
style
的所有权已转移给QProxyStyle
。如果样式是
None
,将自动分配一个依赖于桌面的样式。另请参阅