2010-12-14 6 views
1

は、私はこのようになりますメニューバーを持っている:メニュー項目をクリックしたときに関数を呼び出す方法を教えてください。 Qtので

|File| 
+-------------------+ 
|Do Something  | 
|Do Something Else | 
+-------------------+ 

私は、私は、ユーザーがファイルメニューにDo Somethingをクリックしたときに呼び出されるようにしたい機能doSomething、および機能doSomethingElseを持っています同様に、ユーザーがそのメニュー項目をクリックしたときに呼び出されるようにしたい。どうすればこれを達成できますか?

答えて

8

通常、メニュー項目はQActionです。 QAction信号triggered()を、呼び出すdoSomething()に接続します。

Thisは、この仕組みのかなり完全な説明です。でも、address book tutorialthis sectionは簡単な説明にはいいですね。

+0

関数がクラスの一部でない場合、これを行う方法はありますか? – wrongusername

+0

私はそう信じません。スロットを正しく呼び出すには、Q_OBJECTマクロを持つクラスのメンバ関数である必要があります。 – jkerian

+1

私の最初のリンクから "シグナルやスロットを含むすべてのクラスは、その宣言の先頭にQ_OBJECTを記述する必要があります。また、QObjectから(直接的または間接的に)派生する必要があります。 – jkerian

2

機能をスロットにし、メニューアクションをスロットに接続します。

関連する問題