Russian Qt Forum
Июня 23, 2025, 11:41
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
c++ runtime проблема и непонятное пересоздание ячеек при скрол таблицы [решено]
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: c++ runtime проблема и непонятное пересоздание ячеек при скрол таблицы [решено] (Прочитано 1959 раз)
daimon
Гость
c++ runtime проблема и непонятное пересоздание ячеек при скрол таблицы [решено]
«
:
Июня 09, 2011, 01:41 »
Делаю в студии 2008 статическую компиляцию библиотек рантайма Qt (gode generation->Multi-thread (\MD)) приложение выкинуло проблему линкера - исключил для линкера специфическую либу - всё норм запустилось, но есть проблема, когда таблица QTableWidget с 20000 строками и 40 колонками начинаю выделять мышью где-то в центре вылет в памяти (вся таблицы сожрала где-то 900 метров изначально после добавления итемов).
при подключенном рантайме Multi-thread DLL - всё норм и глюков в памяти нет (и весит таблица в памяти 900 метров тоже).
В чём проблема? Помогите, спс
«
Последнее редактирование: Июня 09, 2011, 19:15 от daimon
»
Записан
daimon
Гость
Re: c++ runtime проблема
«
Ответ #1 :
Июня 09, 2011, 03:06 »
понял суть проблемы - при рантайме просто нет ошибки в памяти, когда пересчитываются все ячейки при скролинге таблицы, а без - есть. Самое непонятное, почему при скролинге создаются заново ячейки - мне обязательно для запрета пересчёта нужно хранить формулу в строке класса ячейки (если она отличается от предыдущей - пересчёт), а тут получается создаётся заново ячейка с параметрами по-умолчанию - строка формулы "", и уже отличается от текущей формулы, хотя по сути нет. Как запретить пересоздание ячеек в таблице при простом её скролинге или как хранить формулу в ячейке (роль редактирования) пока значение по этой роли не изменится функцией вставки ячейки в таблице (я задаю там при копировании и сортировки) или вручную - набором, но не скролингом.
Главная задача кака-то сделать так, чтобы строка с формулой как-то оставалась после скролинга (ведь объект то заново создаётся)
«
Последнее редактирование: Июня 09, 2011, 13:35 от daimon
»
Записан
daimon
Гость
Re: c++ runtime проблема и непонятное пересоздание ячеек при скролинге таблицы
«
Ответ #2 :
Июня 09, 2011, 19:15 »
решил сам - проблема была в том, что при быстрой прокрутке объекты ячеек так быстро удаляются, что самопальный парсер (в функции возврата значения в ячейке по роли Display Role) успевает принимает битую формулу (нулевую строку) по роли Edit Role, так, что делаю проверку на валидность строки и всё теперь норм
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...