【问题标题】:How to display some text instead of an icon in the system tray using PyQt or PySide?如何使用 PyQt 或 PySide 在系统托盘中显示一些文本而不是图标?
【发布时间】:2012-10-14 09:48:56
【问题描述】:

我只是想创建一个在系统托盘中显示当前时间的数字时钟。

我可以使用 QPainter 绘制图标并将其设置为 QSystemTrayIcon 对象,但图标的大小始终为 22x22 像素。

我该如何实现呢,我知道 PyGTK 可以简单地给托盘图标对象添加标签,PyQT/PySide 的解决方案是什么?

【问题讨论】:

    标签: python pyqt pyside system-tray trayicon


    【解决方案1】:

    “图标已调整为 22x22 像素”,我假设您在基于 X11 的系统(Ubuntu 或其他 linux 发行版)上运行您的应用程序。

    QSystemTrayIcon doc 中,它说您的图标将根据您使用的操作系统调整大小:

    在 Windows 上,系统托盘图标大小为 16x16;在 X11 上,首选尺寸是 22x22。图标会根据需要缩放到合适的大小

    您仍然可以通过以下方式解决此问题:

    1. 使用 QPainter 创建两个 22x22 系统托盘图标:一个小时,另一个分钟
    2. 显示两个系统托盘图标(左侧为小时,右侧为分钟)

    此解决方法容易出错,因为图标可能以错误的顺序显示。如果 X11 是您唯一的目标平台,我强烈建议您使用 pygtk。

    【讨论】:

    • 可惜了,很难理解这么强大的框架竟然做不到这么简单的工作!
    • 我认为 Qt 有这个限制,因为他们想让他们的 UI 框架可移植,并且跨操作系统保持一致。
    猜你喜欢
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    相关资源
    最近更新 更多