2016-06-28 69 views
-1

在我的Qt5.7程序中,我有一个密码安全性。在某些情况下,我想要求用户输入密码。我想通过单独的QDialog来完成。该对话框检查密码是否良好。这是一个问题。如何从父对话框中检查授权是否正确?Qt5从子对话框获取响应

我的对话框:

Sorry for editiong, I haven't transalted it yet

和代码显示对话框:

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

综上所述,我想知道,如果用户点击取消(对话框只是接近),或点击授权(密码不错,对话框关闭)

我该怎么做?我不想做新的全局布尔,并检查父对话框如果bool == 1,它不安全。

+0

是PasswordGet了QDialog的子类? – FreddyKay

+3

[QDialog exec()和获取结果值]的可能重复(http://stackoverflow.com/questions/12470806/qdialog-exec-and-getting-result-value) – demonplus

+0

@demonplus谢谢你连接这个线程,它帮助我解决我的问题。现在我的线程可能会重复:/ – km2442

回答

1

不要重新发明轮子,使用Qt已经提供的密码对话框。如果你需要的是如何使用Qt对话框的例子在这里看到他们很好的例子:http://doc.qt.io/qt-5/qtwidgets-dialogs-standarddialogs-example.html

您可能需要使用QDialogEdit::getTextQLineEdit::Password一个QLineEdit::EchoMode。如果你期待用户输入: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 
+0

谢谢你的想法,但我已经用另一种方式解决了我的问题。 – km2442

+0

@KamilKlecha如果可能的话,你应该在这里发布你的解决方案,并接受它以利于任何追随你的人,他们也可能在同一个问题上挣扎! –