问题标签 [qicon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
77 浏览

c++ - 如何让 QIconEngine 可以访问 QPalette?

语境

假设我想实现一个自定义 QWidget 类,它应该实现一个按钮(类似于 QPushButton)。

在此处输入图像描述

要求:

  1. 它应遵循操作系统的颜色(也是图标)
  2. 它应显示QWidget::action. 对于本练习,图标可以是使用 QPainter 手动绘制的简单矩形。在最终版本中,我使用 SvgRenderer 用操作系统颜色为图标着色。
  3. 它应允许不同的尺寸和分辨率。

注意:QPalette有助于为多种目的获取操作系统颜色。重要的是不要保存调色板,而是QWidget::palette()在需要时调用:这允许操作系统在用户更改操作系统上的颜色设置时正确更新 UI。

为了说明我的尝试,我将使用以下示例:

灯光下的调色板 黑暗中的调色板

我的假设是QAction::icon在小部件上放置一个图标。但我在努力理解它设计背后的尝试是什么,因为:

  • QPalette没有传递给QIconEngine,因此,我看不到如何使用正确的操作系统颜色呈现图标。我可能可以想象一些黑客将其保存QPalette在一个static变量中,但这似乎不是正确的方法。
  • QIconEngine似乎是自定义的方式QIcon,当我可以通过扩展获得相同的结果时,为什么需要这样做QIcon?(为此,QIcon需要 be virtual,令人沮丧的是事实并非如此)。
  • 我应该QIconEngine为每个创建一个实例QIcon吗?还是QIconEngine所有人共享的Icons
  • 我应该在QIconEngine或 中缓存图标的呈现QIcon吗?

问题:

如何使 QPalette 可访问,以便 QIconEngine 可以以正确的(OS)颜色绘制图标?

0 投票
0 回答
149 浏览

python - QPainter.drawText 输出模糊

我正在尝试使用QPainter's创建一个系统托盘图标来显示一个字符串(“Hello world!”在下面的代码片段中) drawText。问题是文本不清晰,而且相当模糊(如果相关的话,我有一个 HiDPI 监视器)。这是我的系统托盘的屏幕截图(将日期/时间与“Hello world”进行比较)。

在此处输入图像描述

这是生成系统托盘图标的代码。

编辑 1:创建后,图标将在以下上下文中使用:

编辑2:这里有一些附加信息:

如何使文本看起来更清晰?非常感谢!

0 投票
1 回答
56 浏览

qt - 对关闭状态使用 Qicon 禁用模式

我有一堆可检查的 QToolbuttons,我希望图标在未选中状态下“变灰”。我可以通过在 QIcon 中为开/关状态设置不同的文件来实现这一点。像这样:

但是由于 QIcon 可以创建在禁用模式下使用的自身“灰色”版本,我更喜欢使用禁用模式图标而不是自己创建所有图标的灰色版本。这可能吗?