Чувствую, что я искал везде, но не могу найти ответ на этот вопрос.Интересно, есть ли способ добавить дополнительные QActions в QSpinBox ContextMenu?В идеале к началу списка действий.
Я знаю, что вы можете заменить меню по умолчанию, как показано ниже, но можно выяснить, как его расширить:
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_())
Меню по умолчанию:
![enter image description here](https://i.stack.imgur.com/3K0VC.jpg)
Опции, которые я хотел бы добавить к началу:
![enter image description here](https://i.stack.imgur.com/T15vq.jpg)
Заранее благодарим за любую помощь,
Марк