2012-04-11 7 views
0

私は、仮想関数cut()、copy()、paste()、およびdelete()を含む共通インタフェースから派生したいくつかのQGraphicsSceneサブクラス "CustomScene"を持っています。 QGraphicsSceneは、CustomSceneによって継承されるCustomSceneInterfaceに継承されるスーパークラスです。各カスタムシーンはメインウィンドウの別々のQGraphicsViewsで表示されます。カット、コピー、ペースト、削除のQActionもあります。最後にクリックしたQGraphicsSceneに信号を転送する方法

最後にクリックされたCustomScene(または「フォーカス」があるもの)にQAction信号を送信する方法を理解できません。

どうすればいいですか?

答えて

1

私は、QAction信号を、どのQGraphicsViewにフォーカスがあるかを確認してからシーンの適切なメソッドを呼び出すスロットに送ることができることを認識しました。これを正しく動作させるには、QGraphicsViewsで

と呼ぶ必要があります。誰かがより良い解決策を考えることができるなら、私に教えてください。

EDIT:Qt5で

とスロットとしてラムダ式を使用することができるという、私は今、かなり気の利いたアプローチを採用することができます。まず、関数lastClickedScene()を作成します。この関数は、最後にクリックされたシーンを返します。その後、私はconnect(actionCut, &QAction::triggered, [=]{lastClickedScene->cut();})です。

関連する問題