2010-12-14 114 views
2

這應該很容易。
我使用Qt Creator的,我已經做了Qt Gui Application(即有main.hmain.uimain.cpp在Qt中顯示錶格

我剛剛創建了一個Qt Designer Form Class也有一個頭文件,用戶界面,以及一類。 我做了一個動作我main.cpp稱爲ShowSecondForm內:

void Main::ShowSecondForm() 
{ 

} 

每次我執行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的內置財產製,看看QObject::setProperty()QObject::property()的功能。

+0

你好Septagram! m_form = new MyForm(this);將創建一個新的表單。我使用QtDesigner創建了一個表單。我想要的只是顯示我創建的表單。該表單稱爲form2.ui,它有一個form2.h和一個form2.cpp文件,因爲它不僅僅是一個表單,而且還是一個類。 – Sharethefun 2010-12-14 07:25:52

+0

在設計師中,你創建了一個類。一個班級就像你實際使用的形式的藍圖。但要使用它,您需要創建該類的_object_。看看myform2.h並用我的例子中的MyForm替換form2.h中的類名(我想它是Form2)。然後創建並打開您與設計師製作的表單。 – Septagram 2010-12-14 07:39:47

0

我懷疑this tutorial可能會有所幫助。大概你有一個main.ui,一個main.h和一個main.cpp。

在你的main.ui文件上運行uic程序,生成你的ui_main.h頭文件(如果你不使用qmake的話),但是基本的設置在本教程中。

+0

我認爲該示例只使用一種形式.. 當我創建我的第二個表單時,qt自動創建了所需的所有文件,聲明和方法。我只是問如何顯示我使用動作創建的第二個窗體。選中ShowSecondForm();我希望每次執行此功能時,都要顯示第二種形式。 – Sharethefun 2010-12-14 07:00:06

+0

ui系統只是將佈局等附加到現有的QWidget上,所以如果您想交替使用它們,請爲每個QWidget提供一個不同的QWidget並顯示/隱藏它們。 – jkerian 2010-12-14 07:30:47