在尝试将操作项添加到默认OS X菜单时,我跟随the documentation。下面是一个简短的脚本,在运行时会生成:
QMenu:没有为弹出菜单创建OSMenuRef
我(显然不够)的搜索没有透露任何关于下一步的真实线索,或者是否有可能这样做。
脚本:
from PyQt4.QtGui import QApplication
app = QApplication([])
from PyQt4 import QtGui
menu = QtGui.QMenuBar()
action = QtGui.QAction('Apref', app)
action.setMenuRole(QtGui.QAction.PreferencesRole)
menu.addAction(action)
详细说明:
答案 0 :(得分:0)
简单回答:我所误解的是,当事情被吸入标准OS X"偏好"时,它们都将被附加到"偏好"下的菜单中。实际情况是,只有一个操作与首选项相关联,开发人员需要构建所需的系统。我通过查看"偏好"与其他应用程序一起使用:它们总是创建一些特定于应用程序的窗口。
所以,没有ado,这是一个实现Preferences的最小脚本。我毫不怀疑有一种更标准的处理方式,但我想把它拿出来。
from PyQt4 import QtCore,QtGui
app = QtGui.QApplication([])
def pmake(*args, **kwargs):
menu = QtGui.QMenu()
menu.addAction('This is an action')
result = menu.exec_(QtCore.QPoint(10,10))
print 'result="{}"'.format(result)
pact = QtGui.QAction('Preferences', app)
pact.triggered.connect(pmake)
pact.setMenuRole(QtGui.QAction.PreferencesRole)
pmenu = QtGui.QMenu('Preferences')
pmenu.addAction(pact)
menu = QtGui.QMenuBar()
menu.addMenu(pmenu)