【问题标题】:Qt5 Get response from child dialogQt5 从子对话框中获取响应
【发布时间】:2016-06-28 12:03:26
【问题描述】:

在我的 Qt5.7 程序中,我有密码安全性。在某些情况下,我想向用户询问密码。我想通过单独的 QDialog 来做到这一点。此对话框检查密码是否正确。这是一个问题。如果授权是肯定的,我如何从父对话框中检查?

我的对话:

以及显示对话框的代码:

PasswordGet pass;
pass.setWindowFlags(Qt::MSWindowsFixedSizeDialogHint);
pass.setModal(true);
pass.exec();

总结一下,我想知道用户是点击取消(对话框刚刚关闭),还是点击授权(密码很好,对话框关闭)

我该怎么做?如果 bool == 1,我不想创建新的全局 bool 并从父对话框中检查,这不安全。

【问题讨论】:

  • PasswordGet 是 QDialog 的子类吗?
  • @demonplus 感谢您链接此线程,它帮助我解决了我的问题。现在我的线程可能是重复的:/

标签: c++ qt qdialog


【解决方案1】:

不要重新发明轮子,使用 Qt 已经提供的密码对话框。如果您需要如何使用 Qt 对话框的示例,请在此处查看他们的优秀示例:http://doc.qt.io/qt-5/qtwidgets-dialogs-standarddialogs-example.html

您可能希望将QDialogEdit::getTextQLineEdit::EchoModeQLineEdit::Password 一起使用。如果您希望用户输入:QString password 那么您的代码将如下所示:

bool ok;
QString text = QDialogEdit::getText(this, tr("Authorization"), tr("Password:"), QLineEdit::Password, QString(), &ok);

if(ok && text == password) // Success, do you're action here

【讨论】:

  • 谢谢你的想法,但我已经用另一种方式解决了我的问题。
  • @KamilKlecha 如果可能的话,您应该在此处发布您的解决方案并接受它,以使追随您的任何人受益,他们可能也在为同样的问题而苦苦挣扎!
猜你喜欢
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
相关资源
最近更新 更多