Найти - Пользователи
Полная версия: pyqt4 qradiobutton setChecked(False)
Начало » Python для новичков » pyqt4 qradiobutton setChecked(False)
1
chewey
пару слов в общем: есть прога которая реализует тестирование. я рандомно выбираю вопрос и для него подгружается набор элементов (лейблы, эдиты, и тд). есть тип вопроса “single-choice” для него подгружается несколько радиобатонов и суть проблемы в том, что при следующей подгрузке этого типа вопроса сохраняется состояние checked для радиобатона который я выбрал на предыдущем вопросе. radio.setChecked(False) не работает
PEHDOM
chewey
radio.setChecked(False) не работает
честно говоря, так и хочеться ответить: “потому что гладиолус”. Не видя кода, с возможностю повторить проблему никто вам ничего толкового не посоветует.
chewey
вот код
chewey
к нему json файл
PEHDOM
Так и не выйдет у вас ничего таким макаром. Так уж устроены радиобаттоны у КуТе, по умолчанию.
Один раз чекнули и потом фиг анчекнеш.
У вас несколько вариантов:
1. каждый раз создавать новую группу радиобаттонов.
2. всегда ставить выбор по умолчанию на первый баттон.
3. обьединить их в группу QButtonGroup, тогда вы сможеже их анчекнуть.
по последнему варианту небольшой пример:
 import sys
from PyQt4 import QtGui
class Window(QtGui.QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.radio_bttns = []
        layout = QtGui.QVBoxLayout(self)
        self.setLayout(layout)
        self.btn_group = QtGui.QButtonGroup(self)  # Группа для радиобаттонов
        for i in range(4):
            radio = QtGui.QRadioButton(self, text = 'text {}'.format(i))
            self.radio_bttns.append(radio)
            self.btn_group.addButton(radio)
            layout.addWidget(radio)
        clear_btn = QtGui.QPushButton(self, text = 'Clear')
        layout.addWidget(clear_btn)
        clear_btn.clicked.connect(self.clear)
        self.show()
    def clear(self):
        # очитска работтонов
        self.btn_group.setExclusive(False) # переводим группу из екслюзивного ржима, в нем возможен множественный выбор/не выбрать ни одной
        for radio in self.radio_bttns:
            radio.setChecked(False)  # снимаем отметки
        self.btn_group.setExclusive(True) # возвращаем группу в эксклюзивный режим, чтобы одновременно можно было выделить только один
app = QtGui.QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())

chewey
спасибо, все сработало
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB