使sniqt识别所有纸盘功能(或在Qt中创建工作指示器)


9

我的旧线程是:如何使用Qt / C ++创建工作指标?建议在我的应用程序中使用QSystemTray库在Ubuntu中制作托盘图标。

Sniqt是一个程序,负责其余的工作。众所周知,Ubuntu摆脱了托盘图标。取而代之的是,它现在仅使用指标。Sniqt将Qt托盘图标转换为工作指示器。

问题在于它的转换效果不佳。诸如单击,单击中键等操作在支持托盘图标的系统中不起作用。

有办法让这些动作恢复吗?我可以使用QSystemTray图标,在Ubuntu中仍然进行这些有趣的操作(对我而言非常有帮助)吗?

我也很高兴知道我之前提到的另一个线程的答案(如何使用GTK库制作工作指示器并防止崩溃)。

Sniqt错误的链接:https ://bugs.launchpad.net/sni-qt/+bug/1027652


这不是所有指标的正常行为吗?它们仅接受左键单击和滚动事件。
Timo 2012年

不!如果您例如单击声音图标,它将使声音静音/取消静音。在我的应用程序中,我想退出它。
hytromo

Answers:


0

似乎Qt至少在Ubuntu Unity上不支持此功能,即使它已“激活”信号。因此,我建议您使用GTK和普通的trayicon,我认为Qt别无选择。您可以联系Qt的开发人员对此进行澄清。


1
抱歉,Qt的托盘图标确实具有此功能。我的托盘的动作在其他系统中也可以正常工作。这是Ubuntu的问题及其指标的固执。Sniqt也许能够解决问题
hytromo

2
我可以确认这不是Qt的错。我也怀疑问题出在哪里sniqt。我不知道应用程序指示器甚至还可以区分左键单击和右键单击。对我来说,这也一直是沮丧的根源。
内森·奥斯曼

1

根据选择,Unity不支持您所谓的“体面的托盘图标”。它是指标还是什么都没有。从那里您有几种选择:

  • 利用有限的指标功能。您可以使用标准QSystemTray.setContextMenu()方法设置指标将使用的菜单。

  • 完全将您的应用与系统托盘分开。如图所示,将其变成桌面上的浮动图标,它将能够按照God和Matthias Ettrich的意图接受中间和右键单击。您可以在此处找到有关此操作的简单示例:http : //kde-apps.org/content/show.php/KEyes?content=51493(或者,仅当检测到您正在Unity下运行时,才可以执行此操作,例如,如果$ DESKTOP_SESSION设置为'ubuntu'。)

  • 声明不支持Unity。这不是一个很好的选择。

是否要选择选项1或2主要取决于应用程序的功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.