3

グループボックス内のラジオボトムは、ボトムのグループとして扱われます。それらは相互に排他的です。チェック状態をクリーンアップするにはどうすればよいですか?

私はいくつかのラジオボトムを持っています、それらの1つはチェックされています。どうすればすべてのラジオの底を「きれいにする」(チェックを外す)ことができますか?「setChecked」はグループ内では機能しません。次のことを試みましたが失敗しました。

私のコードは次のとおりです。radioButtomはgroupBox内にあり、チェックを外したいと思います。最初のsetCheckedは機能しますが、2番目のsetCheckedは機能しません。radioBottomはチェックされていません。

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

私のコードのどこに問題がありますか?

4

2 に答える 2

4

秘訣は、プロパティのautoExclusiveチェックを外してから再度有効にする前に、プロパティを無効にすることです。

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

この後、radioButtonはオフになります。

于 2010-05-12T06:46:49.460 に答える
1

Qtのドキュメントでは、次のように述べています。QRadioButtonは、オン(チェック)またはオフ(チェックなし)に切り替えることができるオプションボタンです。ラジオボタンは通常、ユーザーに「多くの選択肢の1つ」を提示します。ラジオボタンのグループでは、一度に1つのラジオボタンのみをチェックできます。ユーザーが別のボタンを選択すると、前に選択したボタンがオフになります。AFAIKすべてのQRadioButtonをチェックできるわけではないと思います。

私の練習では、1つのダイアログ/ウィンドウですべてのQRadioButtonが一度にチェックオフされるのを見たことがありません。しかし、私は間違っているかもしれません。

私の側からの解決策として、追加のQRadioButtonを1つ作成し、それを非表示にすることを提案する場合があります。したがって、1つのウィジェットですべてのQRadioButtonを非表示にする必要がある場合は、非表示のウィジェットでsetChecked(true)を実行できます。

幸運を。

于 2010-05-12T06:45:59.103 に答える