2009-06-29 20 views
4

私は2つのフォームを持っています。メインフォームはテキストボックスを持つダイアログボックスを開きます。テキストボックスのテキストをメインフォームに戻すにはどうしたらいいですか?私はさまざまな方法を試してみましたが、私は単純なものが欠けていると思います。助けてくれてありがとう。Qtのあるフォームから別のフォームに変数を渡す

答えて

3

ダイアログボックスは閉じた後もまだ存在します。

QString text = subform->textEdit->text(); 

これはあなたのダイアログボックスがsubformであると想定して、テキスト編集ボックスに付けた名前がtextEditです:だから、メインフォームから、このような何かを行うことができます。デザイナーにtextEditが公開されていることを確認してください。

textEditを公開したくない場合は、subformにゲッターを追加できます。

+0

これは基本的に私が考え出したことです、私は正しくやっていました。クラス内でC++関数を作る正しい方法を "忘れた"だけです。 QString MainForm :: getValue()の代わりにQString getValue()を実行していました。 – whatWhat

0

MVCパターンを使用する場合は、モデルオブジェクト(データのコンテナ)を作成し、テキストボックスに渡してテキスト値自体を入力します。ダイアログが閉じられたら、モデルから値を読み込んで、必要な場所に配置します。

関連する問題