python - QPushButton 选项卡高亮信号

标签 python pyqt4 qt-signals

我正在使用 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/

相关文章:

python - Linux eventfd 的初始值和在 pollable Lock 中的使用

c++ - 将 C++/Qt4 示例转换为 PyQt4

python - 在 matplotlib 图中将鼠标限制在 Canvas 区域

qt - 我的信号/插槽连接不起作用

c++ - 添加 QListWidgetItem 到 QListWidget

python - rust 中 ndarray::Array1<f64> 中的元素比较

Python Json 配置 'Extended Interpolation'

python - Jupyter Notebook集群有什么用

qt - QWebView 自动选项卡

python - PyQt 在 for 循环内部连接与单独调用会导致不同的行为