在我的主窗口 ( 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
也无济于事。