class QProxyStyle#

QProxyStyle 类是一个便利类,用于简化动态覆盖 QStyle 元素。 更多...

Inheritance diagram of PySide6.QtWidgets.QProxyStyle

概要#

方法#

注意

此文档可能包含自动从 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)
...

另请参阅

QStyle

__init__([style=None])#
参数:

styleQStyle

构建一个用于在指定的 style 中覆盖行为的 QProxyStyle 对象,或者在默认的本机 style(如果未指定 style)中覆盖行为。

style 的所有权转移至 QProxyStyle

__init__(key)
参数:

key – 字符串

构建一个用于在由样式 key 指定的基本样式或当前 application style 返回的当前应用程序样式中覆盖行为的 QProxyStyle 对象,如果指定的样式 key 不可识别。

另请参阅

create()

baseStyle()#
返回类型:

QStyle

返回代理基本样式对象。如果没有在代理样式中设置基本样式,QProxyStyle 将创建一个应用样式的实例。

另请参阅

setBaseStyle() QStyle

setBaseStyle(style)#
参数:

styleQStyle

设置要代理的基本样式。

style 的所有权转移至 QProxyStyle

如果styleNone,则会自动分配与桌面相关的样式。

另请参阅

baseStyle()