Russian Qt Forum
Ноябрь 01, 2024, 06:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с QTableWidget  (Прочитано 8245 раз)
JamS007
Гость
« : Январь 01, 2010, 21:45 »

Товарищи прогеры, объясните, пожалуйста, такое явление:

Имеется QTableWidget (создан с помощью дизайнера, с уже готовыми QTableWidgetItem). Все QTableWidgetItem созданные дизайнером, автоматически. При попытке обращения к свойствам самого QTableWidget приложение работает нормально, а вот при обращении к какому нибудь QTableWidgetItem приложение тут же падает, без каких-либо видимых ошибок.

Creator выдает следующее сообщение: <Название программы>.exe завершился с кодом -1073741819

Помогите разобраться, что не так, а то я даже не знаю в какую сторону копать.
Записан
Dendy
Гость
« Ответ #1 : Январь 01, 2010, 23:42 »

Скорее всего вы обращаетесь к несуществующему QTableWidgetItem, таблица возвращает 0, а вы пытаетесь с ним что-то сделать. А лучше покажите код.
Записан
JamS007
Гость
« Ответ #2 : Январь 02, 2010, 11:35 »

вот отрывок из ui_*.h. Creator, как я понял, производит инициализацию элементов прямо в *.h файлах.

Код:
if (marksWidget->columnCount() < 12)
            marksWidget->setColumnCount(12);
        QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(0, __qtablewidgetitem);
        QTableWidgetItem *__qtablewidgetitem1 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(1, __qtablewidgetitem1);
        QTableWidgetItem *__qtablewidgetitem2 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(2, __qtablewidgetitem2);
        QTableWidgetItem *__qtablewidgetitem3 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(3, __qtablewidgetitem3);
        QTableWidgetItem *__qtablewidgetitem4 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(4, __qtablewidgetitem4);
        QTableWidgetItem *__qtablewidgetitem5 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(5, __qtablewidgetitem5);
        QTableWidgetItem *__qtablewidgetitem6 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(6, __qtablewidgetitem6);
        QTableWidgetItem *__qtablewidgetitem7 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(7, __qtablewidgetitem7);
        QTableWidgetItem *__qtablewidgetitem8 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(8, __qtablewidgetitem8);
        QTableWidgetItem *__qtablewidgetitem9 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(9, __qtablewidgetitem9);
        QTableWidgetItem *__qtablewidgetitem10 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(10, __qtablewidgetitem10);
        QTableWidgetItem *__qtablewidgetitem11 = new QTableWidgetItem();
        marksWidget->setHorizontalHeaderItem(11, __qtablewidgetitem11);

а вот собственно и само обращение к элементам таблицы:
       
Код:
ui->marksWidget->itemAt(5,5)->setTextColor(Qt::lightGray);

Добавлю еще, что никаких делегатов и подобного им не устанавливал, так ка только начинаю разбираться в этой ветке программирования, и еще не совсем понимаю их значение и надобность.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Январь 02, 2010, 12:02 »

воспользуйтесь отладчиком
гугл сказал что это вроде "No Access error"
Записан
JamS007
Гость
« Ответ #4 : Январь 02, 2010, 12:18 »

Действительно... отладчик показывает обращение к несуществующей памяти. Но тогда объясните мне, что делает Creator при создании элементов в QTableWidget. Получается он их создает, но не присваивает таблице или как?



Разобрался. Действительно, QTabelWidget нужно заполнять полями вручную.
« Последнее редактирование: Январь 02, 2010, 12:47 от JamS007 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 22.