そのQStringがローカルである場合、QStringでシグナルを送信する正しい方法は何ですか? 私はwiddetAでこのような機能を持っていることを意味します
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&)));
どちらの方法でも機能しますが、 QString s がローカルであり、関数 something() が終了すると破棄されるため、2 番目の const& によってアプリケーションがクラッシュします。
または私は何かが欠けていますか?