【发布时间】:2012-09-18 16:50:07
【问题描述】:
在我的主窗口 (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)
(为什么没有响应连接错误的断言 - 我无法理解。在我发现输出中的那些 - 以及类似的 - 消息之前,我花了很多时间想知道出了什么问题。) p>
ui.commandsTableView->selectionModel() 返回的对象名称为空。但是在调用connectSlotsByName 之前将其设置为selectionModel 也无济于事。
【问题讨论】:
标签: qt signals-slots