QPushButton聚焦行为

时间:2018-05-12 19:51:36

标签: python-3.x pyqt5

创建标准QPushButton时,如果窗口中没有其他窗口小部件,则会给予完全关注。但是,即使有其他小部件,一旦点击该按钮保持专注。这是一张显示行为的图片:

blue glow on button

如果我单击按钮并将鼠标移出按钮,它也会有此焦点。然而,绑定到按钮的方法不会执行,这是预期的行为。重点不是。它应该只在点击时像这样聚焦,并且一旦它不再被按下就应该恢复到它的正常状态。见这里:

unfocused

我尝试了各种方法来尝试解决此问题,例如setFocus(False)方法,setAutoFocus()方法以及setFocusPolicy(QtCore.Qt.NoFocus)方法。这只取得了一些成功。是的,按钮现在没有聚焦,但它从未获得焦点;因此" NoFocus"。如果我有" NoFocus"这就是点击按钮时的样子。参数集:

unfocused button

基本上,我只希望按钮在点击时具有焦点,我希望它在点击后失去焦点。从本质上讲,回到第二个屏幕截图中的样子。

我使用Antergos Arch Linux和KDE Plasma,所以我希望这不是某种Qt库问题。对于PyQt5或其他方式,我无法在线找到任何相关信息。

感谢。

编辑:这是按钮的代码:

self.play_pause_button = QtWidgets.QPushButton()
self.play_pause_button.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_MediaPlay))

编辑2:这是一整段示例代码

#!/usr/bin/python3.6

import sys

from PyQt5 import QtWidgets


if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)

    window = QtWidgets.QWidget()
    window.resize(640, 480)

    button = QtWidgets.QPushButton()
    button.setText('Push me!')

    layout = QtWidgets.QHBoxLayout()

    layout.addWidget(button)

    window.setLayout(layoutB)
    window.show()

    sys.exit(app.exec_())

以下是我的系统上的示例:

enter image description here

0 个答案:

没有答案