我正在使用 PyQt 设计应用程序。出于可访问性原因,我想在按钮突出显示时说出按钮的名称(使用 Tab 键导航。)
我可以使用 Windows Speech API 录制语音。现在我想使用信号和插槽,但是 QPushButton 似乎没有高亮时的信号。我发现的那些被点击、销毁、按下、释放、切换。它们都不起作用。
有什么方法可以设置一个自定义信号,当按钮被制表符突出显示时将发出该信号?
最佳答案
QApplication
负责管理小部件焦点,因此您可以连接到它的 focusChanged信号:
QtGui.qApp.focusChanged.connect(self.handleFocusChanged)
信号发送对失去/接收焦点(通过任何方式)的前一个/当前小部件的引用,因此处理程序可能如下所示:
def handleFocusChanged(self, old, new):
if old is not None and new is not None:
if isinstance(new, QtGui.QPushButton):
print('Button:', new.text())
elif isinstance(new, QtGui.QLineEdit):
print('Line Edit:', new.objectName())
# and so forth...
您还可以使用以下方法获取当前具有焦点的小部件:
widget = QtGui.qApp.focusWidget()
关于python - QPushButton 选项卡高亮信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27443837/