python - 带有 Qt 的菜单栏/系统托盘应用程序

标签 python qt pyqt qtgui qmenu

我是 Qt (PyQt) 的新手,我正在尝试制作一个应用程序,其功能将从菜单栏/系统托盘中执行。这里展示了一个完美的例子:

enter image description here

我找不到关于如何执行此操作的良好资源。有人可以建议。

谢谢。

最佳答案

我认为您正在寻找至少在菜单部分使用 QMenuQMainWindow

在这里您可以找到一个 C++ 示例:

Menus Example

这里是一个 PyQt4 示例:

Menus and Toolbars in PyQt4

为方便起见,这里是内联代码:

import sys
from PyQt4 import QtGui

class Example(QtGui.QMainWindow):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):               

        exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self)        
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(QtGui.qApp.quit)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Menubar')    
        self.show()


def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

至于 QSystemTrayIcon 部分,你可以这样写:

def main():
    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("Bomb.xpm"), w)
    menu = QtGui.QMenu(parent)
    exitAction = menu.addAction("Foo")
    trayIcon.setContextMenu(menu)

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

if __name__ == '__main__':
    main()

关于python - 带有 Qt 的菜单栏/系统托盘应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23441084/

相关文章:

python - 运行Django collectstatic时如何忽略目录?

c++ - 使用 OpenGL 绘图,无需杀死 CPU 且无需并行化

c++ - 为什么 Qt 不将调试消息发送到 Windows 中的 std 错误流?

c++ - 使用 QPainter 绘制着色 QPixmap

c++ - 在Qt中的TextEdit中写在同一行上

python - 自定义 QStyledItemDelegate : adding bold items

python - PyQt4:将操作系统日期/时间打印到标签

python - 如何使用 mysaldb 插入 mysql 表,其中表名在 python 变量中?

Python 将多个对象加载到映射中以在内存缓存中使用

python - 由于构建错误,无法在 JupyterLab 中添加扩展