2016-06-28 10 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

QDialogのサブクラスはPasswordGetです:QString passwordは、次に、あなたのコードは次のようになりますか? – 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

をあなたはQLineEdit::PasswordQLineEdit::EchoModeQDialogEdit::getTextを使用したいと思います。あなたは、ユーザが入力するように期待している場合:

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

アイデアありがとうございますが、私はissuを別の方法で解決しました。 – km2442

+0

@KamilKlecha可能であれば、あなたの解決策をここに掲載し、それを受け入れて、誰かがあなたの後に来て同じ問題を抱えている人に恩恵を受けるようにしてください! –

関連する問題