Как сделать свой переключатель PyQt5?
Вопрос прост. Я хочу сделать кнопку-переключатель, которая еще в разные стороны ездит, когда на нее тыкаешь.
Я поискал по интернету, нашел одну статью вчера. Но успешно потерял ее и лишился единственного найденного примера) Я знаю, что нужно каким-то образом перерисовать QAbstractButton или QPushButton, но каким конкретно образом - не знаю.
Собственно, я бы обнял того человека, который дал бы минимальный пример, чтобы понять, как вообще перерисовываются виджеты. А также объяснить, как менять положение этой кнопки на фоне (ну когда на нее тыкаешь, там ее часть вправо-влево ездит).
Ответы (1 шт):
Самое простое решение - использовать таблицу стилей с QCheckBox.
Просто отредактируйте таблицу стилей для флажка.
Другое решение можно увидеть здесь Toggle switch на PyQt5
import sys
from PyQt5 import QtWidgets
app = QtWidgets.QApplication(sys.argv)
switch = QtWidgets.QCheckBox()
switch.setStyleSheet('''
QCheckBox::indicator:unchecked {
image: url(switch_off.png);
}
QCheckBox::indicator:checked {
image: url(switch_on.png);
}
''')
switch.show()
sys.exit(app.exec_())
switch_off.png
switch_on.png



