2010-12-01 48 views
1

我是QT的總新手。使用QT設計器創建的新插槽的代碼在哪裏?

我使用Qt 4.7.1的Visual Studio 2008年的工作

我想實現一個按鈕,這是所有覆蓋圖像,按下時,圖像的變化。 (圖像按鈕) 我想使用QT設計器將按鈕放在正確的佈局然後編程處理按下事件(..信號..)更改按鈕上的圖標。

創建新的mainWindow。把一個工具按鈕放在裏面。 切換到插槽&信號模式。從按鈕()上的按鈕創建一個信號插槽到窗口上的新插槽1()。 現在我在哪裏放置了slot1()的代碼?

回答

1

Sry for my english。這很糟糕,但我會盡力幫助你。

你必須使用繼承方法。所以:
•您創建了一個表單,並在該表單上添加了一個與slot1()的連接。
•在項目中包含您的表單,編譯它。將生成一個名爲ui_FormName.h的文件。在該文件的底部,你會發現這樣的代碼:
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui

你必須:
1)創建一個新的類,從類QMainWindow的繼承。
2)在包含生成的h文件的頭文件中,添加一個類型爲Ui :: MainWindow的成員,該成員在生成的.h文件中聲明(例如:Ui::MainWindow* m_puiTmp;)。
3)還添加代碼:
public slots: // or private slots:, or protected slots: ... Whatever.
void slot1();

然後創建實施爲新類的功能。不要忘記在您的構造函數中添加 m_puiTmp->setupUi(this);,然後爲您的slot1()插槽創建實現。

您也可以在派生類中描述您的插槽和信號,然後將它們與QtDesigner中的信號和插槽連接起來。只需在設計人員中添加現在的插槽或信號,就可以根據您在代碼中設置的名稱對其進行重命名。

希望這會幫助你。如果你不能解決你的問題,給我寫信息。我會盡力幫忙。

+1

REALLY CONFUSED的問題在於設計者沒有顯示您定義的插槽。如果你定義了一個插槽'mySlot',你必須手動將它添加到設計器'插槽和信號模式'中的列表中。 – Hanan 2010-12-09 11:42:00