- 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()
会为用户定义或系统控制的样式调用。例如,在 macOS 上,菜单是由操作系统处理的,因此这可能不起作用。当只能在一个特定的小部件上设置代理样式时,你需要确保不要在由
style()
返回的全局应用程序样式中设置代理。你需要为该小部件创建一个单独的类似的自定义样式... proxy = MyProxyStyle(QApplication.style().name()) proxy.setParent(widget) # take ownership to avoid memleak widget.setStyle(proxy) ...
另请参阅
构建一个用于在指定的
style
中覆盖行为的QProxyStyle
对象,或者在默认的本机style
(如果未指定style
)中覆盖行为。对
style
的所有权转移至QProxyStyle
。- __init__(key)
- 参数:
key – 字符串
构建一个用于在由样式
key
指定的基本样式或当前application style
返回的当前应用程序样式中覆盖行为的QProxyStyle
对象,如果指定的样式key
不可识别。另请参阅
返回代理基本样式对象。如果没有在代理样式中设置基本样式,
QProxyStyle
将创建一个应用样式的实例。另请参阅
设置要代理的基本样式。
对
style
的所有权转移至QProxyStyle
。如果
style
为None
,则会自动分配与桌面相关的样式。另请参阅