Название: вопрос по QTableWidgetItem Отправлено: Григорий от Март 20, 2012, 19:10 Добрый день форумчане , есть вот такой кусок кода
Код: QTableWidgetItem* ti; сама таблица состоит из 6 колонок, пытаюсь создать пустые текстовые итемы, но на строке connectTable->setItem(connectTable->rowCount()-1,i,ti); происходит вылет программы..., что я сделал не так? Название: Re: вопрос по QTableWidgetItem Отправлено: kambala от Март 20, 2012, 20:05 а columnCount ты таблице задал?
Название: Re: вопрос по QTableWidgetItem Отправлено: Григорий от Март 20, 2012, 22:11 а columnCount ты таблице задал? да я самой таблице при создании задал размерность 1 строка 6 колонокНазвание: Re: вопрос по QTableWidgetItem Отправлено: kambala от Март 20, 2012, 22:26 в приведенном тобой коде connectTable->rowCount() возвращает правильное значение перед и после увеличения количества колонок?
Название: Re: вопрос по QTableWidgetItem Отправлено: V1KT0P от Март 20, 2012, 22:27 а columnCount ты таблице задал? да я самой таблице при создании задал размерность 1 строка 6 колонокНазвание: Re: вопрос по QTableWidgetItem Отправлено: Bepec от Март 20, 2012, 22:31 сама таблица состоит из 6 колонок, пытаюсь создать пустые текстовые итемы, но на строке connectTable->setItem(connectTable->rowCount()-1,i,ti); происходит вылет программы..., что я сделал не так? Берём строку: connectTable->setItem(connectTable->rowCount()-1,i,ti); Подставляем количество строк 0 ( в первой итерации цикла). Получаем connectTable->setItem(-1,i,ti); Профит?! установить в -1 наврядли оно сможет ;) Название: Re: вопрос по QTableWidgetItem Отправлено: mutineer от Март 20, 2012, 22:34 сама таблица состоит из 6 колонок, пытаюсь создать пустые текстовые итемы, но на строке connectTable->setItem(connectTable->rowCount()-1,i,ti); происходит вылет программы..., что я сделал не так? Берём строку: connectTable->setItem(connectTable->rowCount()-1,i,ti); Подставляем количество строк 0 ( в первой итерации цикла). Получаем connectTable->setItem(-1,i,ti); Профит?! установить в -1 наврядли оно сможет ;) с чего бы количеству строк быть нулем, если перед циклом оно увеличивается на 1? Название: Re: вопрос по QTableWidgetItem Отправлено: Григорий от Март 21, 2012, 08:35 По опыту скажу, если выложишь минимальный проект с этим багом - то тебе быстрее помогут. Пользуюсь вашим советом выкладываю минимум с этим багом Код: #include <QtGui> Код: #include <QtGui> Название: Re: вопрос по QTableWidgetItem Отправлено: Григорий от Март 21, 2012, 08:42 в приведенном тобой коде connectTable->rowCount() возвращает правильное значение перед и после увеличения количества колонок? да вывожу значение через мессагу, все ровно Название: Re: вопрос по QTableWidgetItem Отправлено: BRE от Март 21, 2012, 08:56 А ты попробуй этот код вызвать не из слота обработчика cellChanged.
Название: Re: вопрос по QTableWidgetItem Отправлено: V1KT0P от Март 21, 2012, 09:40 По опыту скажу, если выложишь минимальный проект с этим багом - то тебе быстрее помогут. Пользуюсь вашим советом выкладываю минимум с этим багом Код: #include <QtGui> Код: #include <QtGui> 1) Ты создаешь новую строку и начинаешь добавлять элементы. 2) При создании первого элемента вызывается слот элемента. 3) Ты начинаешь проверять первые четыре элемента. НО! Создался только первый элемент а 2,3 и 4-й элементы еще не созданы. При попытке обратиться к несуществующему элементу программа падает. Вот так измени обход элементов и будет работать: Код
Название: Re: вопрос по QTableWidgetItem Отправлено: Григорий от Март 21, 2012, 09:49 Короче проблема вот в чем: 1) Ты создаешь новую строку и начинаешь добавлять элементы. 2) При создании первого элемента вызывается слот элемента. 3) Ты начинаешь проверять первые четыре элемента. НО! Создался только первый элемент а 2,3 и 4-й элементы еще не созданы. При попытке обратиться к несуществующему элементу программа падает. Вот так измени обход элементов и будет работать: Код
все дошло , забыл эфект рекурсии я же выделяю элемент а он порождает еще один вход в этот слот )) вопрос закрыт всем спасибо... Название: Re: вопрос по QTableWidgetItem Отправлено: kambala от Март 21, 2012, 13:49 ещё сделай таблицу полем класса
|