Название: 2 и более Stretch колонки Отправлено: Igors от Июль 07, 2017, 06:13 Дрбрый день
Все прекрасно когда в таблице/дереве одна колонка Stretch, остальные Fixed или ResizeToConent. Но с 2 и более Stretch свободное место просто делится поровну между ними. В рез-те нередко получается что в одной полно места, в другой все порезано. Слышал что надо считать размер самому - хорошо, но куда поместить этот код? Ну и сам алгоритм расчета не лишен интереса. Напр такой расклад Цитировать Текст 1 Здесь при расчете хорошо бы отбросить слишком длинные строки если они редки Текст 2 .. А я вот такой баааальшой текст Текст 100 Спасибо Название: Re: 2 и более Stretch колонки Отправлено: Авварон от Июль 07, 2017, 11:32 Ну просто же переопределить data с Qt::SizeHintRole, нет?
Название: Re: 2 и более Stretch колонки Отправлено: Igors от Июль 07, 2017, 11:58 Ну просто же переопределить data с Qt::SizeHintRole, нет? Это ширина одной ячейки (и то когда ResizeToContent). Я хочу посчитать и выставить ширину всей колонки сам - но где мне это приткнуть чтобы автоматом вызывалось на изменения в таблице?Название: Re: 2 и более Stretch колонки Отправлено: Авварон от Июль 07, 2017, 12:07 Ну так вьюха пробегается по всем ячейкам и высчитывает ширину колонки на основании сайзхинта ячеек.
Просто сделайте хинт ограниченным по ширине сверху и вуаля. Название: Re: 2 и более Stretch колонки Отправлено: Igors от Июль 08, 2017, 10:09 Просто сделайте хинт ограниченным по ширине сверху и вуаля. Мне хотелось бы сначала собрать всю информацию о ширине айтемов в нужных колонках, а потом уже, на основании ее, вычислить "оптимальные" размеры. Иначе что/как ограничивать? Может просто места "хватает на всех" или наоборот, только минимальный размер и возможен. Нашел QAbstractItemView::sizeHintForColumn (virtual), лучшего ничего не видно. Придется наверное при его вызове для первой Stretch посчитать для всех. Ну хорошо, а как же считать? Просто "по максимуму" (как у великих троллей) может оказаться плохо если попадется длиннющая строка-урод. Да и обычно колонки есть менее и более важные Название: Re: 2 и более Stretch колонки Отправлено: Old от Июль 08, 2017, 11:14 Да и обычно колонки есть менее и более важные И, как правило, "важность колонок" разработчика не совпадает с "важностью колонок" пользователя. :) А так как при автоматическом расчете ширины колонок нельзя менять их руками, пользователи начинают очень грустить.Поэтому, я сразу разрешаю ручное управление колонками и делаю механизм, который автоматически сохраняет состояние всех колонок на всех вьюшках. Название: Re: 2 и более Stretch колонки Отправлено: GreatSnake от Июль 08, 2017, 15:20 Ну хорошо, а как же считать? По "среднему" ( сумма длин / количество ).Название: Re: 2 и более Stretch колонки Отправлено: Igors от Июль 09, 2017, 08:56 По "среднему" ( сумма длин / количество ). Может лучше так: считаем среднее и отбрасываем тех чья длина напр в 2 раза больше среднего. А потом считаем максимум по остальным.А вот как распределить место между 2 (и более) колонками? Ну ясно первая проверка "все просто влазит". Допустим нет - и что дальше? |