Russian Qt Forum
Ноябрь 24, 2024, 06:57
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Model-View (MV)
>
[РЕШЕНО] QTableView с авторазмером ячеек - есть проблемы.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО] QTableView с авторазмером ячеек - есть проблемы. (Прочитано 4525 раз)
sarbash
Гость
[РЕШЕНО] QTableView с авторазмером ячеек - есть проблемы.
«
:
Июнь 25, 2010, 10:48 »
Всем привет.
Для табличных шапок выставил режим размерности setResizeMode(QHeaderView::ResizeToContents).
Однако, при первом отображении окна с таблицей, высота строк выставляется некорректно. Если немного изменить вручную размер окна, то всё приходит в норму. Также, некорректной становится высота строк при максимизации/нормализации окна. События переопределить не проблема, проблема в том, что события происходят до фактического изменения состояния окна. У кого какие есть идеи по этому поводу? Как лучше сделать, чтобы после изменения состояния (state) окна (Minimized/Maximized), автоматически подгонялся и размер ячеек таблицы?
P.S. Проблему с первым отображением окна с таблицей решил. Нерешённой осталась вторая проблема - автоподбор высоты при изменении состояния окна. Такое впечатление, что оно работает, но с опозданием. То есть, если максимизировать окно, а потом вернуть в нормальное состояние, то высота строк в нормальном состоянии как раз подходит для максимизированного состояния окна, а если после этого снова максимизировать, то высота оказывается как раз подходящей для предыдущего -- нормального -- состояния окна.
P.P.S. Методом научного тыка выяснено: на минимизацию таблица реагирует адекватно. Проблема наблюдается только при переходе из нормального состояния в максимизированное.
Очень надеюсь на помощь. Спасибо.
«
Последнее редактирование: Июнь 29, 2010, 20:57 от sarbash
»
Записан
sarbash
Гость
Re: QTableView с авторазмером ячеек - есть проблемы.
«
Ответ #1 :
Июнь 29, 2010, 13:53 »
Видимо, никому такой функционал не был нужен и никто не сталкивался с подобным. Что ж, пока установил костыль при помощи сигнала и зарепортил баг. Буду ждать результатов...
Записан
asvil
Гость
Re: QTableView с авторазмером ячеек - есть проблемы.
«
Ответ #2 :
Июнь 29, 2010, 19:07 »
Я пробовал использовать ResizeToContents для горизонтального заголовка и столкнулся с похожими проблемами. У меня была задача отобразить родительский для таблицы виджет равно такой ширины, какая необходима для всего горизонтального заголовка.
Первая особенность: пока таблица была невидима заголовки не изменяли свой размер.
Вторая, немного не в тему: ResizeToContents вместе с strechLastSection работает некорректно.
Решение заключается в ручном вызове resizeToContents, когда это было необходимо.
Записан
sarbash
Гость
Re: QTableView с авторазмером ячеек - есть проблемы.
«
Ответ #3 :
Июнь 29, 2010, 20:56 »
Про некорректность - верное замечание. Я там в самом последнем послесловии в первом посте упомянул о проблеме.
Другую проблему я получил - заметно стал тормозить интерфейс, когда я в двух таблицах, поделенных вертикальным сплиттером, указал параметр setResizeMode(QHeaderView::ResizeToContents) на обе шапки.
В итоге, я отказался от этого параметра вообще и изменил реализацию.
В общем, можно сказать, что проблему я решил, тему можно закрывать.
Благодарю за участие.
P.S. Если кому-то будет интересно решение - напишу отдельным постом.
«
Последнее редактирование: Июнь 29, 2010, 21:03 от sarbash
»
Записан
Aeon
Гость
Re: [РЕШЕНО] QTableView с авторазмером ячеек - есть проблемы.
«
Ответ #4 :
Июль 27, 2010, 01:50 »
меня интересует решение, напиши.
Записан
sarbash
Гость
Re: [РЕШЕНО] QTableView с авторазмером ячеек - есть проблемы.
«
Ответ #5 :
Июль 29, 2010, 22:35 »
в changeEvent() отлавливается максимизация окна и возбуждается соответствующий сигнал. Сигнал в конструкторе присоединяется на слот ResizeRowsToContent(). На этот же слот вешается сигнал от хедера таблицы, возбуждаемый при изменении размера колонок. Собственно, ничего сложного. Один кастомный сигнал, всё остальное - из комплекта.
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...