メイン ウィンドウ ( QMainWindow
) にQTableView
(という名前のcommandsTableView
) があります。ここで、選択の変更に対応したいと思います。
スロットを作成し、手動で に接続しましたui.commandsTableView->selectionModel()
。すべて正常に動作します。
しかし、私は考えました:自動接続を使用しないのはなぜですか (特に、より多くの接続を行う必要があるため)。少なくとも、一貫した命名規則に力を加えるでしょう。
それでも、適切な名前の構文を見つけることができませんでした。私は試した:
on_commandsTableView_selectionModel_selectionChanged
、on_commandsTableViewSelectionModel_selectionChanged
、on_commandsTableView_selectionChanged
、on_commandsTableView___selectionChanged
しかし、どちらも機能しませんでした。すべての場合において、アプリの実行時に出力にメッセージが表示されます (対応するスロット名とともに、ここでは最初に例としてのみ示します)。
QMetaObject::connectSlotsByName: No matching signal for on_commandsTableView_selectionModel_selectionChanged(QItemSelection,QItemSelection)
(接続エラーに対する応答にアサーションがないのはなぜですか?私には理解できません。出力にこれらのメッセージや同様のメッセージが表示されるまで、何が問題なのかを考えるのに多くの時間を費やしました。)
によって返されたオブジェクトui.commandsTableView->selectionModel()
の名前が空です。ただしselectionModel
、呼び出しを行う前にに設定しconnectSlotsByName
ても、どちらも役に立ちません。