如果 QString 是本地的,那么使用 QString 发出信号的正确方法是什么。我的意思是我在 wigdetA 中有这样的功能
void wigdetA::something()
{
//
//e.g
//
QTreeWidgetItem *it = this->treeWidget->currentItem();
if (it == 0)
return;
QString s = it->text(1);
emit passToMainWindow(s);
}
我应该像这样创建连接(只是 const QString):
connect(wigdetA, SIGNAL(passToMainWindow(const QString)), this, SLOT(passToMainWindow(const QString)));
或者我可以使用 const 参考吗
connect(wigdetA, SIGNAL(passToMainWindow(const QString&)), this, SLOT(passToMainWindow(const QString&)));
两种方法都有效,但我虽然第二个 const& 会使应用程序崩溃,因为 QString s 是本地的,并且当函数 something() 退出时它将被破坏。
或者我错过了什么?