8

私はC++Qtデスクトップアプリケーションを書いています。

トレイアイコンを作成せずに、QtでSkype = likeの通知を表示することは可能ですか?

私が見つけたすべての通知参照には、作成したくないトレイアイコンが必要です。

通知には、アプリケーションが開かれたときと最小化されたときに表示される必要があります。

4

4 に答える 4

9

更新:これは最近のバージョンのQtでは機能していないようです。この作業を行うために私が見つけた回避策は、QSystemTrayIconを作成した後、次のようにすることでした。

  • 電話show()
  • 目的のメッセージを表示するshowMessage
  • 電話hide()

これは私にとっては問題なく機能します。


作成しますQSystemTrayIconが、決して呼び出さないshow()でください。次に、を使用QSystemTrayIcon::showMessageしてポップアップを表示できます。

于 2012-07-12T12:13:36.160 に答える
2

ポップアップクラスを作成し、常にトップフラグを付けてデスクトップのどこかに表示します。通知はウィジェットの場合もあります

于 2012-07-12T11:16:02.277 に答える
2

少し遅れますが、このライブラリに興味があるかもしれません https://github.com/Snorenotify/Snorenotify/

Snorenotifyは、マルチプラットフォームのQt通知フレームワークです。プラグインシステムを使用すると、Windows、Unix、Macでさまざまな通知システムを使用して通知を作成できます。

于 2014-12-12T00:17:33.727 に答える
1

OPと同様の問題がありました(しかしPythonで!!)、ロマーリオの答えは私が望んでいたものの半分に到達しました。

私のシナリオでは、ロックファイルを介して1つだけが生きていることを強制するsys-trayツールがあります。ただし、ユーザーからのフィードバックでは、既に開いているときに起動しようとすると、何らかのフィードバックを提供するように求められました。

私が見つけたのはWindowsでした-Romariosの答えはアイコンがシステムトレイに残っていることを導きます-それsetVisible(False)より前に呼び出すshow()と、アイコンがシステムトレイに表示/蓄積されるのを防ぎます:)

私の完全なサンプルは

class SimpleNotifier(QtWidgets.QWidget):

    def notify_running(self):
        tray_icon = QtGui.QIcon(Params.TRAY_ICON)
        self.setIcon(tray_icon)
        self.setVisible(False)
        self.show()
        self.showMessage("Hi User", "Application already inside your sys-tray", QtGui.QIcon(Params.TRAY_ICON))

def notify():
    app = QtWidgets.QApplication(sys.argv)
    notify = HUBController.SimpleNotifier()
    notify.notify_running()
    app.exit()

notify()
    

そして、はい、私はこの投稿をするためだけに何年も潜んでいた後、アカウントにサインアップしました::)

于 2020-10-20T13:00:18.757 に答える