使用Qt的菜单栏/系统托盘应用
我刚开始学习Qt(PyQt),想做一个应用程序,里面的功能可以通过菜单栏或系统托盘来执行。这里有个很好的例子:
我找不到好的资料来学习怎么实现这个功能。有没有人能给点建议?
谢谢!
1 个回答
1
我想你是在寻找如何使用 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()