不能为我的刽子手游戏设置快捷方式。除了使用QShortcut组件,还有其他方法绑定键盘快捷键吗
问题是,当我将它用于myPushButtonHandler()方法(它使用sender())时,它会抛出一个错误:'QShortcut' object has no attribute 'text'
。我知道这是因为handler使用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的每个字母都指定给它的快捷键
您不必替换QShortcut,您所要做的是确定哪种类型的sender()调用该插槽,并为每种类型应用适当的方法
相关问题 更多 >
编程相关推荐