Получение активной радиокнопки PyQT5
У меня есть группа radioButton, которые определяют куда записывать данные: в А или в Б, после нажатия на кнопку Добавить.
Как мне при нажатию на pushbutton получить активную радиокнопку из группы?
def win_start(self):
self.ui.show()
self.r_btns_group_woman = QButtonGroup()
self.r_btns_group_woman.addButton(self.ui.r_btn_woman_A)
self.r_btns_group_woman.addButton(self.ui.r_btn_woman_B)
self.ui.r_btn_woman_A.setChecked(True)
def btn_events_listener(self):
self.ui.btn_add_woman.clicked.connect(lambda: self.add_woman())
def add_woman(self):
if self.ui.self.ui.r_btn_woman_A.isEnabled():
print("A")
else:
print("B")
Если кому-то понадобится, прикрепляю скриншот
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Пожалуйста всегда предоставляйте минимально-воспроизводимый пример.
Используйте isChecked(), чтобы узнать, выбрана ли конкретная кнопка.
from PyQt5 import QtCore, QtGui, QtWidgets
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
central_widget = QtWidgets.QWidget()
self.setCentralWidget(central_widget)
self.listWidget = QtWidgets.QListWidget()
self.listWidget.addItems(["Item 1", "Item 2", "Item 3", "Item 4", "Item 5",]);
self.r_btn_woman_A = QtWidgets.QRadioButton("A")
self.r_btn_woman_A.setChecked(True)
self.r_btn_woman_B = QtWidgets.QRadioButton("B")
self.btn_add_woman = QtWidgets.QPushButton("Добавить")
self.btn_add_woman.clicked.connect(self.add_woman)
self.r_btns_group_woman = QtWidgets.QButtonGroup()
self.r_btns_group_woman.addButton(self.r_btn_woman_A)
self.r_btns_group_woman.addButton(self.r_btn_woman_B)
layout = QtWidgets.QGridLayout(central_widget)
layout.addWidget(self.listWidget, 0, 0, 1, 3)
layout.addWidget(self.r_btn_woman_A, 1, 0)
layout.addWidget(self.r_btn_woman_B, 1, 1)
layout.addWidget(self.btn_add_woman, 1, 2)
def add_woman(self):
# if self.ui.self.ui.r_btn_woman_A.isEnabled():
if self.r_btn_woman_A.isChecked():
print("A")
else:
print("B")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())

