【发布时间】:2014-05-03 06:28:14
【问题描述】:
我是 Qt (PyQt) 的新手,我正在尝试制作一个应用程序,其功能将从菜单栏/系统托盘执行。这里展示了一个完美的例子:
我找不到关于如何做到这一点的好资源。谁能给点建议。
谢谢。
【问题讨论】:
-
还没有。我开始通过 qt 设计器学习和做我的大部分工作。寻找资源,它是否提供此功能?我会很高兴的。
标签: python qt pyqt qtgui qmenu
我是 Qt (PyQt) 的新手,我正在尝试制作一个应用程序,其功能将从菜单栏/系统托盘执行。这里展示了一个完美的例子:
我找不到关于如何做到这一点的好资源。谁能给点建议。
谢谢。
【问题讨论】:
标签: python qt pyqt qtgui qmenu
我认为您至少在寻找与 QMenu 和 QMainWindow 合作的菜单部分。
您可以在这里找到一个 C++ 示例:
这里有一个 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()
【讨论】: