Название: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 19:06 Доброго времени суток! Решил связаться с QTableWidget... Только вот он никак не хочет связываться со мной :-\
Суть проблемы: код исполняется без видимых ошибок, но на выходе пустая таблица... Цикл проходит 1 раз - 1 пустая и белая строка... Что я не так делаю? Вначале думал может QTableWidgetItem'ы удаляются при окончании цикла (вызываются деструкторы автоматом), перенес newItem'ы в глобальную область - эффекта ноль. Та же таблица с единственной пустой строкой... Код: #define PROTOCOL_NAME_COL 0 Код: QDirIterator it(sPath, QDirIterator::Subdirectories); Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: Old от Март 19, 2014, 19:12 Вы не устанавливаете размеров таблицы:
setRowCount и setColumnCount. Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 19:15 Вы не устанавливаете размеров таблицы: то есть в любом случае надо и размер и insertRow()?setRowCount и setColumnCount. PS размер в столбцах указывал Код: ui.tableWidgetProtocolList->setColumnCount(2); PS2 спасибо за оперативность :) Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 19:18 то есть в любом случае надо и размер и insertRow()? не тут что-то одно, иначе дублирование строки Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: kambala от Март 19, 2014, 19:21 инструментов богов под названием «дебаггер» пользовался? а в папке хоть дллки есть? ExtractFileExt — непонятно зачем вызывать эту функцию, если у QFileInfo и так есть метод вычленения расширения.
Вначале думал может QTableWidgetItem'ы удаляются при окончании цикла (вызываются деструкторы автоматом) если бы знал С++ на приемлемом уровне, подобные еретичные мысли в отношении обычных указателей бы не возникали ;)Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 19:29 инструментов богов под названием «дебаггер» пользовался? а в папке хоть дллки есть? ExtractFileExt — непонятно зачем вызывать эту функцию, если у QFileInfo и так есть метод вычленения расширения. дллки есть. Точнее сказать одна, которая должна быть. (отсюда и один проход цикла упомянутый в начале топика) ExtractFileExt остался из-за того что код в процессе переноса из Builder'a в VS. Для скорости переноса просто создал такой метод и впихнул в него QFileInfo метод, чтобы не искать по всему коду... потом исправится само собой. В дебаггере не видно конкретных ошибок... путь выполнения корректный... все переменные инициализируются... если бы знал С++ на приемлемом уровне, подобные еретичные мысли в отношении обычных указателей бы не возникали ;) Эта мысль была из разряда "невозможно, but shit happens"... просто вообще нет никаких догадок... Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: Old от Март 19, 2014, 19:36 не тут что-то одно, иначе дублирование строки Да, я проглядел у вас insertRow. :)Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: kambala от Март 19, 2014, 19:40 В дебаггере не видно конкретных ошибок... путь выполнения корректный... все переменные инициализируются... брейкпоинт ставил на строчку pProcServ_t pPS = {NULL, pProcService->GetInfo()} (или ниже)? туда заходит?Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 19:45 Цитировать брейкпоинт ставил на строчку pProcServ_t pPS = {NULL, pProcService->GetInfo()} (или ниже)? туда заходит? да заходит. pProcService->GetInfo() - это строка "В базу".не знаю, важно ли это, но данный код работает из конструктора дочернего (по отношению к главному) окна программы. то есть создаем мэйн-окно, создаем дочернее окно с QTableWidget (и тут же заполняем QTableWidget). Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: Old от Март 19, 2014, 19:55 Попробуйте заменить это на константную строку:
Код и посмотрите, появится или нет. Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 20:00 Попробуйте заменить это на константную строку: Код и посмотрите, появится или нет. Это первое что я делал, в обоих итемах ставил строки константные... не помогает :( Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: Old от Март 19, 2014, 20:02 Это первое что я делал, в обоих итемах ставил строки константные... не помогает :( Текст не появляется и цвет тоже не меняется?Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 20:03 Ни то ни другое
Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 20:05 Qt 4.8.3 если что
Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: kambala от Март 19, 2014, 20:19 а если вставить тестовые айтемы вне цикла — сработает?
Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: Old от Март 19, 2014, 20:20 Покажите пожалуйста весь конструктор.
Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 20:25 а если вставить тестовые айтемы вне цикла — сработает? Не совсем Вас понял... newItem и так вне цикла объявлен. Инициализацию тоже туда перенести? Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 20:30 Покажите пожалуйста весь конструктор. К сожалению кода конструктора нет под рукой, только что ушел из офиса. Но так могу сказать, что там инициализируется ui, несколько не связаных с проблемным участком переменных и вызывается как раз эта функция подключения длл и заполнения tablewidget Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: kambala от Март 19, 2014, 20:37 а если вставить тестовые айтемы вне цикла — сработает? Не совсем Вас понял... newItem и так вне цикла объявлен. Инициализацию тоже туда перенести? Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 19, 2014, 20:41 а если вставить тестовые айтемы вне цикла — сработает? Не совсем Вас понял... newItem и так вне цикла объявлен. Инициализацию тоже туда перенести? Попробую, и отпишусь о результате Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: Nidxogg от Март 19, 2014, 20:44 del
Название: Re: QTableWidget все не заполняется и не заполняется... Отправлено: UltraPenguin от Март 20, 2014, 09:33 Покажите пожалуйста весь конструктор. Да Вы были правы, дело в конструкторе! Устанавливал ui.tableWidgetProtocolList->setColumnCount(2); после вызова функции заполнения виджета итемами... :P Вот что значит невнимательность, особенно под конец рабочего дня! :) Простите за беспокойство и спасибо еще раз большое всем за Ваше внимание! |