-1

アプリケーションのオプションのダイアログを表示する「 OptionsClass 」というQDialogクラスがあります。私はQt Designerでそれを設計しました&そのクラスのオブジェクトは私の継承されたクラスで作成されます&それはdです(これは、ボタンがクリックされたときにダイアログをすばやくロードするのに役立つと思います)。オプションボタンがクリックされるたびに、 ()を呼び出した後に &内のテキストを基本的に編集する関数を呼び出しています。に 3もありますconstructorQMainWindownewdeletedestructorOptionsClassQLabelshowQRadioButtonQDialogクラス。アプリケーションの起動時に初めてダイアログを開くと、ラジオ ボタンのチェックが外れています。ここで、任意のボタンをチェックしてダイアログを閉じるとします。ダイアログをもう一度開いても、ラジオボタンはオンになっています。ダイアログを開くたびに、すべてのラジオボタンをオフにする必要があります。

ダイアログを開くためにクリックされるボタンのスロットは次のとおりです。

void MyMainWindow::on_actionCut_triggered()
{
    optionsObj->init(n, 'x');
    optioobjn->show();
}

関数 init のスニペットを次に示します。

void OptionsClass::init(int n, char c)
{
    //some settings to edit the QLabel
    ui->radio1->setChecked(false);
    ui->radio2->setChecked(false);
    ui->radio3->setChecked(false);
}

SetDown()、SetChecked() などの他のプロパティを試してみましたが、それでも機能しません。私は何を間違っていますか?

4

1 に答える 1

1

ボタンがリセットされないようにするには、次のことを行う必要があります

radio-> setAutoExclusive(false); 

次に、チェックを外すことができます。autoExclusiveを再度オンにすることを忘れないでください。

AutoExclusiveは通常、他の抽象ボタンではオフになっていますが、ラジオボタンではオンになっています。

于 2013-02-23T08:25:31.747 に答える