PyQt5 Tutorials

Кнопки переключателя PyQt5: Полное руководство

Spread the love

Это руководство содержит исчерпывающее описание использования виджета QRadioButton в PyQt5. Мы рассмотрим основы, изучим метод setChecked и углубимся в создание групп переключателей для взаимно исключающего выбора. Приступим!

Содержание:

  1. Базовый пример QRadioButton
  2. Метод setChecked
  3. Создание групп переключателей
  4. Обработка выбора пользователя

1. Базовый пример QRadioButton

QRadioButton позволяет пользователям выбирать один вариант из набора. Вот простой пример:


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Пример PyQt5 QRadioButton")

layout = QVBoxLayout()
label = QLabel("Выберите вариант:")
layout.addWidget(label)

radio1 = QRadioButton("Вариант 1")
radio2 = QRadioButton("Вариант 2")
radio3 = QRadioButton("Вариант 3")

layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Это создает три независимых переключателя. Чтобы проверить, какой из них выбран, используйте метод isChecked().

2. Метод setChecked

Программное управление выбором переключателя с помощью setChecked(True) или снятие выбора с помощью setChecked(False).


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QPushButton

# ... (предыдущий код) ...

button = QPushButton("Выбрать Вариант 2")
button.clicked.connect(lambda: radio2.setChecked(True))

layout.addWidget(button)

# ... (остальной код) ...

Это добавляет кнопку, которая выбирает «Вариант 2» при нажатии.

3. Создание групп переключателей

Для взаимно исключающего выбора используйте QButtonGroup. Это гарантирует, что одновременно может быть выбран только один переключатель в группе.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QRadioButton, QVBoxLayout, QButtonGroup

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Пример группы PyQt5 QRadioButton")

layout = QVBoxLayout()
label = QLabel("Выберите вариант:")
layout.addWidget(label)

button_group = QButtonGroup()
radio1 = QRadioButton("Вариант 1")
radio2 = QRadioButton("Вариант 2")
radio3 = QRadioButton("Вариант 3")

button_group.addButton(radio1, 1)
button_group.addButton(radio2, 2)
button_group.addButton(radio3, 3)

layout.addWidget(radio1)
layout.addWidget(radio2)
layout.addWidget(radio3)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

4. Обработка выбора пользователя

Эффективная обработка выбора пользователя с помощью сигнала buttonClicked:


button_group.buttonClicked.connect(lambda button: print(f"Выбран вариант: {button_group.id(button)}"))

Это выводит ID (назначенный при добавлении в группу) выбранной кнопки. Замените инструкцию print на нужное вам действие.

Этот улучшенный подход позволяет избежать ручного проверки состояния каждой кнопки и обеспечивает более надежное и организованное решение для управления выбором переключателей в ваших приложениях PyQt5.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *