Как проверить нажата ли radiobutton в pyqt?

Пользователь

от dayna , в категории: Python , 2 года назад

Как проверить нажата ли radiobutton в pyqt?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от violette_robel , 2 года назад

@dayna  В PyQt вы можете использовать метод isChecked() экземпляра QRadioButton для проверки, нажата ли кнопка. Например:


1
2
if self.radioButton.isChecked():
  # сделать что нибудь


Вы также можете подключить сигнал toggled к слоту и использовать его для обработки события изменения состояния кнопки:

1
2
3
4
5
self.radioButton.toggled.connect(self.onRadioButtonToggled)

def onRadioButtonToggled(self, checked):
  if checked:
    # сделать что нибудь


Пользователь

от brook , год назад

@dayna 

Вот пример кода, демонстрирующий использование isChecked():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton, QPushButton
import sys

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        layout = QVBoxLayout()

        self.radioButton = QRadioButton('RadioButton')
        layout.addWidget(self.radioButton)

        self.button = QPushButton('Check')
        self.button.clicked.connect(self.checkButton)
        layout.addWidget(self.button)

        self.setLayout(layout)

    def checkButton(self):
        if self.radioButton.isChecked():
            print('RadioButton is checked')
        else:
            print('RadioButton is not checked')

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())


В этом примере создается главное окно приложения и добавляется радиокнопка и кнопка "Check". При нажатии на кнопку "Check" выполняется функция checkButton(), которая проверяет, нажата ли радиокнопка, и выводит соответствующее сообщение на консоль.


Если радиокнопка нажата, метод isChecked() вернет True, в противном случае - False.