Имеется такой код:
void TestEditWidget::menuItemSelected()
{
// TODO
QAction* sender=(QAction*)this->sender();
QMap<QString,QString>::iterator it=testsNames.begin();
for(;it!=testsNames.end();++it)
{
QString str1=sender->text();
QString str2=it.value();
!!!!!!! if(str1==str2) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
QPushButton* bt=(QPushButton*)sender->parent();
bt->setText(sender->text());
break;
}
}
}
В месте, выделенном восклицательными знаками, программа вылетает, сказав на прощанье вот это:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb6d55700 (LWP 5625)]
0xb7497564 in QString::operator== () from /usr/lib/libQtCore.so.4
Что-то я не пойму, в чем проблема, тем более что те циклы, в которых строки не равны, проходят нормально. Вылет наблюдается только тогда, когда строки равны.