安全性:如何在 Qt App 中通过密码 show/hide、QGroupBox

Security: How to show/hide, by password, QGroupBox in Qt App

我正在尝试准备我的 Qt 应用程序(在 C++ 中)以供不同的用户配置文件使用:root 用户普通用户,所以我想在普通用户模式下隐藏特定的根选项(受限QGroupBox),然后当root用户需要时他可以输入它的密码(在安全菜单选项中,我已经编码)以显示它们。这可能在同一个 GUI 中吗?我真的被这个安全实现困住了...

那么,当我之前提到的安全菜单选项中键入 user/password 时,我如何编写一个仅由 root 用户 显示的隐藏 QGroupBox?如何实现?

在 Qt 中是否有特定的程序可以做到这一点或在其他情况下有任何想法?

非常感谢!

最后更新: 我已经使用了@The Badger 的建议,并得到了一个完全符合我要求的版本。

有几个选项:

每次在小部件 drawn/shown 之前,检查用户拥有的访问权限级别以及显示或隐藏控件的具体情况:

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);

发出后,小部件将变得可见。