При создании стандартного QPushButton ему предоставляется полный фокус, если в окне нет других виджетов.Тем не менее, даже если есть другие виджеты, после нажатия кнопки она остается сфокусированной.Вот изображение, демонстрирующее поведение:
Если я нажму кнопку и вытащу мышь из кнопки, она также будет иметь этот фокус.Однако связанный с кнопкой метод не выполняется, и это предполагаемое поведение.В центре внимания нет.Он должен фокусироваться таким образом только при нажатии, и должен возвращаться в нормальное состояние, когда он больше не удерживается.Смотрите здесь:
Я пытался это исправить, например, метод setFocus(False)
, метод setAutoFocus()
, а такжеsetFocusPolicy(QtCore.Qt.NoFocus)
метод.Это дало лишь небольшой успех.Да, кнопка сейчас не сфокусирована, но она никогда не фокусируется;следовательно "NoFocus".Вот как выглядит кнопка при нажатии, если у меня установлен параметр «NoFocus»:
По сути, я хочу, чтобы кнопка имела фокус толькопри нажатии, и я хочу, чтобы он потерял фокус после нажатия.По сути, чтобы вернуться к тому, как это выглядит на втором скриншоте.
Я использую 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_())
А вот как выглядит пример в моей системе: