2016-06-28 76 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如果可能的話,你應該在這裏發佈你的解決方案,並接受它以利於任何追隨你的人,他們也可能在同一個問題上掙扎! –