2010-12-14 11 views
2

でフォームを表示します。
私はのQt Creatorをを使用していると私は私はまた、ヘッダファイル、UI、およびクラスを持つQt Designer Form Classを作成した(main.hmain.uimain.cppを持っていたこと)Qt Gui Applicationは、これは非常に簡単なはずのQt

てきました。私は2番目のフォームが表示されるようにしたい私はShowSecondForm();を実行

void Main::ShowSecondForm() 
{ 

} 

毎回: は、私は私のmain.cpp呼ばShowSecondForm内のアクションを行っています。
フォームを開くために何を入れるのですか?
また、開いているときに文字列をフォームに渡すことは可能ですか? ShowSecondForm(const QString&)のように?

あなたを助けるかもしれないいくつかの注意事項:

  • 私が同時に開かれた2つの形態を持っていると思います。
  • それは異なるものを計算しますように、それはまた、クラスになります。

答えて

2

、あなたはこのような何かをしたい場合があります:

m_form = new MyForm (this); 
m_form->show(); 

ここでは、まず、フォームオブジェクトを作成し、それを示しています。注:thisが親として渡されます - 親フォームが破棄されると、子は自動的に閉じられて破棄されます。つまり、デストラクタでのクリーンアップを行う必要はありません。複数のフォームを開く必要がある場合は、それぞれのフォームが必要です。

m_form1 = new MyForm (this); 
m_form1->show(); 
m_form2 = new MyForm (this); 
m_form2->show(); 

最後に、文字列をフォームに渡す方法はたくさんあります。それはあなたのフォームですので、あなたはそれがm_form = new MyForm ("Some string", this);のように、作成時に文字列を受け入れるだろうか、あなたのフォームにプロパティを追加することができるように、それは、コンストラクタの変更することがあります。時には、あなたもQObject::setProperty()QObject::property()機能を見て、組み込みのプロパティシステムQObject年代を使用することをお勧めします。

+0

こんにちはSeptagram! m_form = new MyForm(this);新しいフォームを作成します。私はQtDesignerを使ってフォームを作成しました。私が望むのは、私が作成したフォームを表示することだけです。フォームはform2.uiと呼ばれ、フォームだけでなくクラスでもあるため、form2.hとform2.cppファイルがあります。 – Sharethefun

+0

デザイナーで、クラスを作成しました。クラスは実際に使用するフォームの青写真のようなものです。しかし、それを使用するには、そのクラスの_オブジェクトを作成する必要があります。 myform2.hを見て、私の例ではForm2.hのクラス名をMyFormに置き換えます(私はForm2だと思います)。デザイナーが作成したフォームが作成され、開かれます。 – Septagram

0

私はthis tutorialと思われます。おそらくあなたはmain.ui、main.h、main.cppを持っています。

main.uiファイルでuicプログラムを実行して、ui_main.hヘッダーを生成します(qmakeを使用していない場合)。それ以外の場合、基本的な設定はそのチュートリアルにあります。あなたはから別のフォームを開くしている場合

+0

私は私の第二のフォームを作成したとき、Qtは自動的に必要なすべてのファイル、宣言とメソッドを作成し ...例は一形態のみを使用していることと思います。私はアクションを使って作成した2番目のフォームを表示する方法を尋ねるだけです。 ShowSecondForm()をチェックします。私は、この関数が実行されるたびに、2番目のフォームが表示されるようにしたい。あなたがそれらのに交流したい場合、それらを非表示/各1に異なるQWidgetのショーを養うよう – Sharethefun

+0

UIシステムは、単純に、既存のQWidgetの上にレイアウトし、このようにアタッチします。 – jkerian

関連する問題