Pergunta

Os fundos de rádio dentro de uma caixa de grupo serão tratados como um grupo de fundos. Eles são exclusivos mútuos. Como posso limpar os estados de cheque?

Eu tenho vários fundos de rádio, um deles é verificado. Como posso "limpar" (desmarcar) todos os fundos de rádio ?? "SetChecked" não funciona dentro de um grupo, tentei fazer as seguintes, mas falhei.

Meu código é o seguinte, o Radiobuttom está dentro de uma caixa de grupo, e eu quero desmarcá -lo. O primeiro SetChecked funciona, mas o segundo não, o radiobottom não foi desmarcado

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    QRadioButton *radioButton;
    ui->setupUi(this);
    radioButton->setChecked(true);
    radioButton->setChecked(false);
}

Onde está o problema no meu código?

Foi útil?

Solução

O truque é desativar o autoExclusive Propriedade antes de desmarcá-lo e depois reenabilizá-lo.

ui->radioButton->setChecked(true);
ui->radioButton->setAutoExclusive(false);
ui->radioButton->setChecked(false);
ui->radioButton->setAutoExclusive(true);

Depois disso, o radiobutton está desmarcado.

Outras dicas

Na documentação do QT disse: Um qradiobutton é um botão de opção que pode ser ligado (verificado) ou desligado (sem controle). Os botões de rádio normalmente apresentam ao usuário uma opção "uma das muitas". Em um grupo de botões de rádio, apenas um botão de rádio por vez pode ser verificado; Se o usuário selecionar outro botão, o botão selecionado anteriormente será desligado. Afaik, acho que você não poderá marcar todos os Qradiobuttons.

Na minha prática, nunca vi tudo checado de uma só vez Qradiobuttons em uma caixa de diálogo/janela. Mas pode ser eu confundi.

Como a solução do meu lado, posso oferecer a você para criar um qradiobutton adicional e depois escondê -lo, então quando você precisar ocultar Todo o qradiobutton em um widget, você pode apenas marcar (true) no oculto.

Boa sorte.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top