如何在没有QProxyStyle的情况下修改样式提示?

2023-12-13

我使用 Qt 的 Python 绑定(PySide 或 PyQt4)。他们没有QProxyStyle.

我想更改样式提示的值。例如改变SH_Menu_SubMenuPopupDelay子菜单弹出延迟时间。

在本机 C++ Qt 中我会使用QProxyStyle并覆盖styleHint并过滤感兴趣的样式提示并返回我喜欢的值。完成here例如。

但在我使用的Python绑定中QProxyStyle不可用。那么如何修改现有样式的样式提示呢?


菜单弹出延迟不是固定值,因为它取决于当前的样式。无法以编程方式设置它。

Qt 修改现有样式的样式提示的方法是通过QProxyStyle。然而,即使这样也不能保证适用于用户定义或第三方样式,因为它们没有义务调用QStyle.proxy()。即使他们这样做了,PyQt 和 PySide 都没有包装任何基于插件的类(包括QProxyStyle).

完全控制样式提示行为的唯一方法是编写您自己的、特定于应用程序的样式类。但是,当然,您将不再修改一个的样式提示existing风格,因此这超出了当前问题的范围。

这似乎留下了一个剩下的选择,那就是子类化QMenu并完全绕过样式提示。 Grepping Qt 源代码揭示了(忽略各种样式类)唯一的地方SH_Menu_SubMenuPopupDelay使用的是在mouseMoveEvent of QMenu。因此,可以重新实现它以获得您想要的行为。

UPDATE:

The QProxyStylePyQt5 中现在提供了该类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有QProxyStyle的情况下修改样式提示? 的相关文章

随机推荐

  • Facebook 错误 210“用户不可见”

    php 通过应用程序在朋友墙上发布内容时 我收到错误 用户不可见 错误代码为 210 作为响应 场景如下 User1授权我的应用程序获得所有必需的许可 包括发布流 and 离线访问 现在我想发布User1朋友墙 这时它给了我错误 我正在使用
  • ASP.Net LinkBut​​ton CommandArgument 属性忽略 <%= .. %>

    我正在尝试执行我认为非常简单的操作来在 ASP Net LinkBut ton 控件上设置属性 但由于某种原因 ASP Net 忽略标签并仅将值作为字符串传递
  • 如何像 Mathematica 那样执行这种不正确的积分?

    拿这个 Mathematica 代码 f x Exp x c 0 9 g x c x c 1 Exp x c SetPrecision Integrate f x Log f x g x x 0 001 Infinity 20 Mathem
  • 选择表中两个日期列之间的所有日期

    我有一个这样的表 Id From To 1 2018 01 28 2018 02 01 2 2018 02 10 2018 02 12 3 2018 02 27 2018 03 01 如何获取之间的所有日期From and To像这样的日期
  • 用ggplot中的线连接分组点[重复]

    这个问题在这里已经有答案了 我有一个包含两个分类条件的数据集 条件 A 具有级别 A1 和 A2 条件 B 具有级别 B1 和 B2 每个测量对象提供四个数据点 一个数据点对应两种条件的每种组合 我已经绘制了各个数据点 添加了一些抖动 并希
  • 从 xmltype oracle 中删除空标签

    我想尝试从 xmltype 中删除空标签 我已经从 oracle 类型生成了以下 xml 在集合中 少数元素没有值 因此我使用空标签生成 任何人都可以帮我吗 实际输出
  • PHPmailer 重复电子邮件问题 - $mail->Send() 的条件语句

    我遇到了 PHPmailer 版本 5 1 的一个奇怪问题 我正在尝试解决该问题 我在这里看到了很多很好的反馈 所以我想我应该尝试一下 我发现当我尝试创建带有基于条件语句的自定义确认消息时 mail gt send 我收到重复的电子邮件 我
  • Android中如何将图像转换为字符串?

    It s my MySql DB Its encoding public String convertBitmapToString Bitmap bmp ByteArrayOutputStream stream new ByteArrayO
  • Android 上的系统音频流通过 Webrtc

    我正在尝试使用 Webrtc 在 Android 上构建屏幕共享应用程序 我可以使用 mediaprojection webrtc 共享屏幕 但无法共享系统音频 Mediaprojection 在 AudioPlaybackCaptureC
  • JSlint:意外的“for”[重复]

    这个问题在这里已经有答案了 我一直在用单选按钮进行测试 一切看起来都很好 直到我通过 JS lint 运行它 我修复了除一个错误之外的所有错误 意想不到的 为 for i 0 i lt radios length i 1 这是我的 Java
  • Android SQLite 中的更新功能不起作用

    在我的应用程序中 我需要向 SQLite 数据库添加和编辑数据 当我更新数据功能应用程序时 不会给出任何错误 但我的数据库不会更新 这是我的更新功能 我在网上搜索了两天但无法做到这一点 请帮我 public long updateEvent
  • D3 百分比上标

    我想得到一个小百分号上标 我找到了一个有效的示例 但没有百分比 var svgText svg append text text This is a test mm 有没有一种方法可以让我对百分比做同样的事情 text function d
  • 为什么 char* 总是使用字符串的 len 传递给 FUNCTION

    我最近正在学习c c 但我不明白两者之间的区别 int a chat str int len cout lt
  • 从命令行传递的 WiX 条件属性不起作用?

    我有一个属性用于确定是否安装需要通过命令行参数传递的快捷方式 当我在 wxs 文件中设置属性时 这些条件似乎有效 但通过命令行设置它们时 它们似乎被忽略 从日志中我看到它们正在被设置 MSI s 24 C8 11 01 32 234 PRO
  • 如何用Libvlcsharp实现循环播放

    我的 Windows 和 Android 项目都有 libvlcsharp 工作 它非常好用且易于使用 但我找不到任何方法让播放自动循环 我尝试使用媒体播放器事件处理程序重新启动播放并在创建后将选项传递到媒体中 但似乎没有任何效果 I tr
  • 在Apple App Store中自定义标题图像和背景颜色[重复]

    这个问题在这里已经有答案了 我遇到了一些具有定制应用程序商店的应用程序 OkCupid Badoo POF 还有更多 其中包括自定义标题图像和自定义背景颜色以及中间的渐变 我们如何为我们的应用程序添加这些 截图示例 是的 您可以更改检查以下
  • 从其他服务器访问图像

    我将图像文件放置在一台服务器上 将应用程序放置在另一台服务器上 我想访问该图像 下面是我编写的代码 在default aspx上 我有
  • 从数据库检索数据并设置为 Kivy 中的文本输入字段和图像小部件,以实现多屏应用程序!属性错误

    我正在通过拼凑一个小应用程序来了解不同小部件的行为来学习 kivy 什么有效 该应用程序接受文本和图像作为输入并存储到数据库中 存储的数据使用 RecycleView 正确显示在按钮上 Problem 按下 RecycleView 上的按钮
  • Google 日历 API 日期时间

    我正在尝试让 Google Calendar Api 正常工作 如果不使用我的 POST 日期时间 它就可以完美工作 但日期是像谷歌那样硬编码的 这不是我想要的 当我使用 POST 变量时 它向我显示以下错误 Fatal error Unc
  • 如何在没有QProxyStyle的情况下修改样式提示?

    我使用 Qt 的 Python 绑定 PySide 或 PyQt4 他们没有QProxyStyle 我想更改样式提示的值 例如改变SH Menu SubMenuPopupDelay子菜单弹出延迟时间 在本机 C Qt 中我会使用QProxy