QSystemTrayIcon 仅显示占位符而不显示真实图标

Posted

技术标签:

【中文标题】QSystemTrayIcon 仅显示占位符而不显示真实图标【英文标题】:QSystemTrayIcon shows only place holder and not the real icon 【发布时间】:2015-06-25 16:08:34 【问题描述】:

我下面的代码显示了图标,但它就像是空的,里面什么都没有。如果我将鼠标光标移动到系统托盘中预期的图标位置(最后一个)上,它就在那里,但它不显示真正的图标。它更像是图标的占位符。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

    ui->setupUi(this);

    systemTray = new QSystemTrayIcon();

    systemTray->setIcon( QIcon::fromTheme("edit-undo") ); // stock icon but I have tried use local icon file too with same result

    systemTray->setVisible( true ); // extra insurance
    systemTray->show();

我做错了什么?我正在使用 Qt 5.4 和 Windows 7

【问题讨论】:

您的 Qt 版本、桌面环境、操作系统? @VictorPolevoy 刚刚更新了帖子,5.4 你试过系统图标的例子吗? 在这里查找:C:\Qt\Examples\Qt-5.4\widgets\desktop\systray 由于某种原因,他们停止在网上列出它,并在他们的示例中在欢迎选项卡中列出。 对于图标和图像,将图像添加为 qt 资源文件并以这种方式引用 url 往往非常健壮。 【参考方案1】:

我不知道为什么股票图标不起作用,但这是语法和 qmake 问题。我的路径为":/icons/file.ico""icons/file.ico"。正确的语法如下,否则它不会显示实际的图标。此外,当新图标添加到 qrc 时,我显然需要“运行 qmake”,因为即使语法正确,问题仍然存在。

systemTray->setIcon( QIcon(":icons/file.ico") );

【讨论】:

以上是关于QSystemTrayIcon 仅显示占位符而不显示真实图标的主要内容,如果未能解决你的问题,请参考以下文章

如何在输入中仅使用占位符斜体

QtGui.QSystemTrayIcon settooltip 在 debian 拉伸中不起作用

Qt 5.3 QSystemTrayIcon 无法正常工作[Linux]

占位符在 select2 中不起作用

调用泛型方法而不显式指定类型参数

在数据框中合并两个熊猫系列而不显式使用键