0

Qt Creator で設計および開発されているアプリケーションの下でのメニューとアクションの設計と管理に関する「stackoverflow」フォーラムでの以前の既存の議論を見たことがあります (「Qt Creator でメニュー クリックをアクションに接続する方法」を参照してください) 。 Qt Creator で? )、作成しようとしているツールバーのアクション ボタンについて同じ質問があるのではないかと思います。

じゃ、行こう !

(1) Action Editor で少なくとも 1 つのアクションを作成します... (2) そのアクションをツールバーにドラッグ & ドロップします

(ステップ 1 と 2 は問題ありません。これらの方法で問題はありませんが、他の UIM 設計ツールは通常、同じことを行うために逆のステップ 2 と 1 を提案しているため、私にとっては非常に珍しい方法ですが、これはより「自然です。 「私の意見では、しかし、ソフトウェア設計とプログラミングの世界には多くのものが存在し、共存していることは知っています...)

=> (3) 特定のツールバー ボタンをクリックしたときに呼び出される関数 (これから実装する) を関連付ける (接続する) 方法は?

つまり、特定のアクション(ツールバーボタン)の「トリガーされた」信号を、後で実装する目的のスロット(機能)に接続する方法...?Qt Creator内の「シグナルとスロットエディター」でそのようなことを行うことは可能ですか、またはこれを達成するためにコードのどこかで「connect()」を自分で呼び出す必要がありますか? この時点で完璧な初心者のためのヘルプ/提案/詳細な例を事前に感謝します...

実際、そのような必要性のために自分で connect() を呼び出さないことが可能かどうか、また Qt Creator がスロット (関数) プロトタイプを自分で作成するかどうか、またはそのようなスロット (関数) プロトタイプを自分で事前に作成する必要があるかどうかを知りたいです。 Qt Creator は、新しいスロット (関数) プロトタイプを考慮に入れ、この通常の/通常の UIM 設計ステップ/設計機能でユーザー/開発者を実際に支援/支援できます...?

よろしくお願いします。

アラン・ピエール

4

1 に答える 1

0

がメンバーの場合QAction、ウィンドウの場合、通常の

QMetaObject::connectSlotsByName(SettingsDialog);

...アクションのtriggerシグナルを適切な名前のスロットメソッドに接続します。これは通常、デザイナを使用して作成されたGUIクラスによって自動的に呼び出されます。したがって、actionSomethingたとえばアクションに名前が付けられている場合、次のような署名を使用してGUIクラスにスロットを作成します。

void on_actionSomething_triggered();

connect...信号とスロットを手動で行う必要がないことを意味します。

また、アクションエディタでアクションを右クリックして[スロットに移動...]を選択すると、アクションが発する可能性のある信号のスロット関数を作成できます。

于 2011-07-30T12:06:25.823 に答える