Russian Qt Forum

Qt => Общие вопросы => Тема начата: mokynis от Январь 30, 2017, 11:02



Название: SIGSEGV при очистке QListWidget
Отправлено: mokynis от Январь 30, 2017, 11:02
на форме 2 QListWidget'а. При очистке одного должен очищаться второй (содержимое этого второго зависит от содержимого первого). Делаю, вроде, элементарно
Код:
ui->lWOldProd->clear();
ui->lWNewProd->clear();
1-й очищается без проблем, на втором крашится программа. Пробовал проверять на непустоту
Код:
if(ui->lWOldProd->count())
    ui->lWOldProd->clear();
if(ui->lWNewProd->count())
     ui->lWNewProd->clear();
-никакой разницы. В чем может быть дело?


Название: Re: SIGSEGV при очистке QListWidget
Отправлено: gil9red от Январь 30, 2017, 11:05
Попробуйте сделать минимальный пример с проблемой и приложить его


Название: Re: SIGSEGV при очистке QListWidget
Отправлено: mokynis от Январь 30, 2017, 11:39
хм! Минимальный пример работает. Наверное, где-то я что-то не так сделал в основной программе. Ушел искать
нашел. Может кому понадобится. У меня у lWNewProd был сигнал currentRowChanged(int) (писал уже, что оба виджета связаны), а после очистки currentRow отсутствует, вот он и выдавал Segmentation fault
Извините за дурную тему


Название: Re: SIGSEGV при очистке QListWidget
Отправлено: gil9red от Январь 30, 2017, 13:30
Да ладно, если кто-то придет с такой проблемой, то проверит у себя на такую багу, то полезно будет :)


Название: Re: SIGSEGV при очистке QListWidget
Отправлено: __Heaven__ от Январь 30, 2017, 13:36
После очистки currentRow = -1.


Название: Re: SIGSEGV при очистке QListWidget
Отправлено: AlFoX от Январь 30, 2017, 23:25
а в дебаггере изначально посмотреть точку краша, не?