User 10872085 Ответов: 1

Показать/Скрыть С Помощью PyQt4 QWidget?


Еще раз здравствуйте, ребята. Я застрял здесь-все еще изучаю ООП и питон.

Как мне структурировать эту программу так, чтобы я мог порождать объект QWidget при запуске? Кроме того, как я могу сделать так, чтобы каждый раз, когда я нажимаю на значок в системном трее (а именно mediaIcon.png), этот же виджет не будет повторно создавать себя, а, скорее, показывать/скрывать себя с каждым другим щелчком мыши?

На данный момент, когда я нажимаю на значок, программа Эхо "щелкнула", а затем закрывается. Я не знаю, почему это так.

Премного благодарен,
Akratix


#!/usr/bin/python

import sys, os
from PyQt4 import QtGui, QtCore

class MediaFeed(QtGui.QSystemTrayIcon):

    def __init__(self, icon, parent=None):
        QtGui.QSystemTrayIcon.__init__(self, icon, parent)
        
        menu = QtGui.QMenu()

        aboutAction = menu.addAction("About")
        aboutAction.triggered.connect(self.aboutMenu)
    
        exitAction = menu.addAction("Exit")
        exitAction.triggered.connect(QtGui.qApp.quit)

        self.setContextMenu(menu)
        self.activated.connect(self.systemIcon)

    def aboutMenu(self):
        print "This should be some information."

    def systemIcon(self, reason):
        w = QtGui.QWidget()
        if reason == QtGui.QSystemTrayIcon.Trigger:
            print "Clicked."
            w.show()


def main():

    app = QtGui.QApplication(sys.argv)
    mediaFeed = MediaFeed(QtGui.QIcon("mediaIcon.png"), None)

    mediaFeed.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

1 Ответов

Рейтинг:
0

Member 3377453

модифицированный код это сработало со мной. я использую Qt5. ты мой измени как свой

def systemIcon(самость, разум):
w = QDialog()
если причина == QSystemTrayIcon.Спусковой крючок:
print ("щелкнуло.")
Вт.метод exec_()