-1

我正在尝试准备我的 Qt 应用程序(在 C++ 中)以供不同的用户配置文件使用:root 用户普通用户,所以我想在普通用户模式下隐藏特定的 root 选项(受限 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 回答