【发布时间】:2018-09-12 09:45:07
【问题描述】:
我想保护一个窗口不被关闭,所以当用户尝试这样做时,必须输入密码才能完成操作。无需输入用户名。
我知道如何拦截QWidget::closeEvent,如下例:
void MainWindow::closeEvent(QCloseEvent *event) {
QMessageBox msgBox;
msgBox.setText(tr("Do you want to close the window?"));
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
msgBox.setDefaultButton(QMessageBox::No);
msgBox.setModal(true);
int ret = msgBox.exec();
if (ret == QMessageBox::Yes)
event->accept();
else
event->ignore();
}
问题是,该示例使用QMessageBox,它不允许输入文本,因此不适合我的需要。
如何修改代码以提示输入密码?
【问题讨论】:
-
不能用
QMessageBox,它只支持yes/no/cancel等。看QInputDialog,用textEchoMode隐藏密码 -
成功了!!谢谢@YSC
-
@Minikornio,我可以请您将答案标记为已接受。
标签: c++ qt user-interface passwords