Defining INS (insert) shortcut in macOS
Rodrigo de Salvo Braz
rodrigobraz at gmail.com
Tue May 25 15:01:33 BST 2021
Hi Maurizio,
Here's a minimal reproducible example.
The action works on the menu, and a modifier-based shortcut (here, Alt-P,
after uncommenting out) works as well.
But when I use "Ins" or Qt.Key_Insert, it does not work.
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("INS Test")
quit_action = QAction("E&xit", self)
quit_action.setStatusTip("Exit application")
quit_action.triggered.connect(self.close)
quit_action.setShortcut(QKeySequence.Quit)
insert_action = QAction("&Insert", self)
insert_action.setStatusTip("Insert")
insert_action.triggered.connect(self.insert_task)
insert_action.setShortcut(QKeySequence(Qt.Key_Insert))
# insert_action.setShortcut(QKeySequence("Ins"))
# insert_action.setShortcut(QKeySequence(Qt.ALT + Qt.Key_P))
menu = self.menuBar()
menu.setNativeMenuBar(False)
menu = menu.addMenu("&Action")
menu.addAction(insert_action)
menu.addAction(quit_action)
self.counter = 0
self.label = QLabel(f"Insert selected {self.counter} times.")
self.label.setAlignment(Qt.AlignCenter)
self.setCentralWidget(self.label)
def insert_task(self):
self.counter += 1
self.label.setText(f"Insert selected {self.counter} times.")
app = QApplication(sys.argv)
w = MainWindow()
w.show()
app.exec_()
On Mon, May 24, 2021 at 4:43 PM Maurizio Berti <maurizio.berti at gmail.com>
wrote:
> That shortcut is very generic and can be potentially "eaten" by widgets
> that accept text input.
> Does any other modifier-based shortcut work (excluding standard text
> shortcuts, like ctrl-x or ctrl-a)?
> Can you provide a minimal reproducible example?
>
> Il giorno lun 24 mag 2021 alle ore 19:46 Rodrigo de Salvo Braz <
> rodrigobraz at gmail.com> ha scritto:
>
>> Hi,
>>
>> I am trying to define an Insert shortcut in the macOS:
>>
>> insert_action.setShortcut(QKeySequence(Qt.Key_Insert))
>>
>> Also tried:
>>
>> insert_action.setShortcut(QKeySequence("Ins"))
>>
>> but neither option works (nothing happens). It does work when I run it on
>> Windows.
>>
>> I am using an external PC keyboard. I know the keyboard is generating the
>> right key code because when I use the EventViewer of Karabiner-Elements (a
>> keyboard-remapping application), I do see "key_code: insert" when I press
>> the key.
>>
>> Thanks,
>>
>> Rodrigo
>>
>
>
> --
> È difficile avere una convinzione precisa quando si parla delle ragioni
> del cuore. - "Sostiene Pereira", Antonio Tabucchi
> http://www.jidesk.net
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20210525/c401f909/attachment.htm>
More information about the PyQt
mailing list