假设我要采取一些措施。为此,我可以创建一个QAction
对象,并将其triggered()
信号连接到执行所需功能的插槽。另外,我可以有一个与操作相关的快捷方式;通过更改快捷方式,我将能够使用该快捷方式执行相同的操作。
我现在的问题是我想设置为动作的“快捷方式”,还包含按下鼠标的按钮(并且鼠标事件无法分配给动作快捷方式);说我要Shift+Left mouse button
。也许这听起来有些刺耳,但请忍受我。
我需要什么?好吧,我有一个按钮和一个动作(例如“执行脚本”)。我希望在单击Shift+Left click
时执行脚本,并且希望自定义此“快捷方式”,即用户应该能够更改为Ctrl+Left click
的快捷方式(从某些GUI元素,例如按钮文字),现在Ctrl+Left click
应该执行脚本。
我该如何实现?
答案 0 :(得分:0)
注意:作为用户,我希望由鼠标按钮触发的动作取决于位置。如果是这样,则以下内容会更简单。
Qt无法选择指定这种快捷方式。
您可以通过对鼠标事件做出反应来滚动自己的鼠标:
Windows SSPI
,mousePressEvent()
eventFilter(QObject *obj, QEvent *evt)
无论如何,您都需要在某个地方赶上QApplication::notify
。
根据需要选择尽可能多的小部件(或qApp)。
在那里,将QMouseEvent *mouseEvt
和mouseEvt->button()
与您的动作列表进行比较并触发所选的动作。当用户选择其他触发方式时,请调整您的操作列表。
让我们实践一下:
mouseEvt->modifiers()