无法为我的 Hangman 游戏设置快捷方式。除了使用 QShortcut 组件之外,还有其他方法可以绑定键盘快捷键吗?
问题是当我将它用于 myPushButtonHandler() 方法(不幸地使用 sender())时,它会引发错误:'QShortcut' object has no attribute 'text'. 我知道这是因为处理程序用于sender().text()识别按下了哪个键(也显示在屏幕上)。
def buttonClick(self):
letter = self.sender().text()
...
MUCH more code...
...
def setRow(self, row, letters):
for letter in letters:
button = QPushButton(letter)
self.buttons.append(button)
self.shortcuts.append(QShortcut(QKeySequence(letter), self))
self.shortcuts[-1].activated.connect(self.buttonClick)
button.setStyleSheet(QPushButtonStyle + "border: 3px solid #73ff38;")
row.addWidget(button)
return row
...
...
...
def setButtons(self):
for button in self.buttons :
button.clicked.connect(self.buttonClick)
有什么“棘手”的方法可以避免这个问题吗?我需要将从 A 到 Z 的每个字母分配给它的快捷方式。