【发布时间】:2019-07-27 07:33:17
【问题描述】:
感觉好像我到处找,但找不到答案。 想知道是否有办法向 QSpinBox ContextMenu 添加额外的 QActions? 理想情况下位于操作列表的顶部。
我知道你可以替换默认菜单如下所示,但可以弄清楚如何扩展:
import sys
from PyQt4 import QtGui, QtCore
class QSpinBox(QtGui.QSpinBox):
def __init__(self, *args, **kargs):
QtGui.QSpinBox.__init__(self, *args, **kargs)
self.resize(200, 60)
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.__contextMenu)
def __contextMenu(self):
self._normalMenu = self.build_menu()
self._normalMenu.exec_(QtGui.QCursor.pos())
def build_menu(self):
self.menu = QtGui.QMenu(self)
self.save = QtGui.QAction("Save", self)
self.menu.addAction(self.save)
self.reset = QtGui.QAction("Reset", self)
self.menu.addAction(self.reset)
return self.menu
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
form = QSpinBox()
form.show()
sys.exit(app.exec_())
默认菜单:
我想添加到顶部的选项:
提前感谢您的帮助,
标记
【问题讨论】:
标签: python python-2.7 pyqt