-1

Qt アプリ (C++) をさまざまなユーザー プロファイル (ルート ユーザー通常ユーザー) で使用できるように準備しようとしているので、通常のユーザーモードで特定のルート オプション (制限された QGroupBox) を非表示にしてから、必要なときにroot ユーザーはパスワードを入力して (セキュリティー・メニュー・オプションで、既にコーディング済みです)、それらを表示することができます。同じGUIでそれは可能ですか?私は本当にこのセキュリティの実装にこだわっています...

では、前に述べたセキュリティ メニュー オプションでユーザー/パスワードが入力されたときにroot ユーザーによってのみ表示される非表示の QGroupBox をどのようにコーディングできますか? それを実装する方法は?

Qtでそれを行うための特定の手順や、他の場合のアイデアはありますか?

どうもありがとう!

最終更新: @The Badger の提案を使用しましたが、最初のバージョンはほぼ希望どおりに動作します。

4

1 に答える 1

1

いくつかのオプションがあります:

ウィジェットが描画/表示される前に毎回、ユーザーが持っているアクセスのレベルを確認し、その表示または非表示コントロールに応じて:

void MyWidget::showEvent(QShowEvent * event) {
    if(d_admin == true) {
        ui->myAdminEdit->setVisible(true);
    } else {
        ui->myAdminEdit->setVisible(false);
    }
    /* Or one line */
    ui->myAdminButton->setVisible(d_admin);
}

または、シグナルを接続して、ステータスに基づいてすべての管理ウィジェットを表示します。

/* In some constructor */   
ui->myAdminEdit->setVisible(false);
ui->myAdminButton->setVisible(false);
connect(autClass, SIGNAL(adminLoggedIn(bool)), ui->myAdminEdit, SLOT(setVisible(bool)));
connect(autClass, SIGNAL(adminLoggedIn(bool)), ui->myAdminButton, SLOT(setVisible(bool)));

/* And then after authentication */
isAdmin = authenticate(username, password);
emit adminLoggedIn(isAdmin);

エミット後、ウィジェットが表示されます。

于 2015-11-30T11:36:50.667 に答える