我开始研究需要使用TableView的项目。我的表有3列,最后一列有一个comboBox。使用委托我设法设置comboBox并在组合框的索引状态发生变化时检索信号。问题是我无法从女巫组合框中识别信号是从哪里发出的。
如果我向mainWindow发出comboBox的QString信号,这似乎非常糟糕。我正在考虑一个解决方案,从每行插入行的索引到comboBox。类似行+名称的东西。
我使用其他帖子的建议启动连接,例如:
signals:
void boxDataChanged(const int & str);
在创建编辑器中:
QComboBox * editor = new QComboBox(parent);
editor->addItem("This");
editor->addItem("is");
editor->addItem("nice");
connect(editor, SIGNAL(currentIndexChanged(int)), this, SIGNAL(boxDataChanged(int)));
return editor;
并称之为:
connect(mydelegate, &Delegate::boxDataChanged, [=](const int & str)
{
qDebug() << str;
});
这很好用,但我也需要从巫婆行知道这是来了。
答案 0 :(得分:1)
问题是我无法从女巫comboBox中识别信号 来自。
您可以使用QObject::sender
来获取信号的发送者。
它将返回QObject
,您可以将其转换为所需的类型。