Advertisement
KOT040188

Traylauncher.py

Jan 25th, 2024
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. import sys
  2. import subprocess
  3. from PyQt5 import QtCore, QtGui, QtWidgets
  4. from PyQt5.QtGui import QIcon
  5. # code source: https://stackoverflow.com/questions/893984/pyqt-show-menu-in-a-system-tray-application - add answer PyQt5
  6. #PyQt4 to PyQt5 version: https://stackoverflow.com/questions/20749819/pyqt5-failing-import-of-qtgui
  7.  
  8. class SystemTrayIcon(QtWidgets.QSystemTrayIcon):
  9.  
  10. def __init__(self, icon, parent=None):
  11. QtWidgets.QSystemTrayIcon.__init__(self, icon, parent)
  12. menu = QtWidgets.QMenu(parent)
  13.  
  14. runAction = menu.addAction("Жопа (c иконкой)") # 1 команда
  15. runAction.setIcon(QIcon("/usr/share/icons/breeze-dark/applets/64/osd-rotate-flip.svg"))
  16. runAction.triggered.connect(self.run) # 1 команда
  17.  
  18. exitAction = menu.addAction("Exit")
  19. exitAction.triggered.connect(self.exit)
  20.  
  21. self.setContextMenu(menu)
  22. self.activated.connect(self.showMenuOnTrigger)
  23.  
  24. def run(self): # 1 команда
  25. subprocess.run(["/home/kot/bin/script/monitorbr0.sh"]) # 1 команда
  26.  
  27. def exit(self):
  28. QtCore.QCoreApplication.exit()
  29.  
  30. def showMenuOnTrigger(self, reason):
  31. if reason == QtWidgets.QSystemTrayIcon.Trigger:
  32. self.contextMenu().popup(QtGui.QCursor.pos())
  33.  
  34. def main(image):
  35. app = QtWidgets.QApplication(sys.argv)
  36.  
  37. w = QtWidgets.QWidget()
  38. trayIcon = SystemTrayIcon(QtGui.QIcon(image), w)
  39.  
  40. trayIcon.show()
  41. sys.exit(app.exec_())
  42.  
  43. if __name__ == '__main__':
  44. on=r'/usr/share/icons/breeze-dark/applets/48/weather-few-clouds-night.svg' # ADD PATH OF YOUR ICON HERE .png works
  45. main(on)
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement