crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QTableWidget с закреплёнными слолбцами
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 6.2.2019, 9:21
  NicNici, ну, то есть, ты прокрутку как таковую не делаешь, ты управляешь скрытостью колонок в зависимости от положения плашки скрола

но при таком варианте не получится попиксельную прокрутку сделать, будет только рывками. Если это устраивает, то нормуль )

но лично я бы поленился это всё вычислять :)
NicNici Дата 5.2.2019, 16:58
  Спасибо Алексей1153 за варианты.
Сам я реализовал следующим образом.
Размещаю на виджете QTableWidget и QScrollBar. Из ширины QTableWidget->viewport()->size().width() вычитаю ширину столбцов которые закреплены (не перемещающиеся по скроллингу). Из оставшейся ширины вычисляю, сколько колонок помещается. Те, которые не помещаются, делаю их скрытыми (setColumnHidden). У скроллинга задаю setMaximum равную количеству скрытых столбцов. При перемещении ползунка скроллинга скрываю одни и отображаю другие столбцы.
Алексей1153 Дата 31.1.2019, 11:09
  NicNici, вроде нет такой фичи, но есть следующие идеи:

------------------------------
вариант 1:

берём два одинаковых по количеству колонок виджета (QTableWidget) T0 и T1,
T1 размещается на T0 как чайлд (без использования компоновщика, чтобы не было спонтанных изменений размера).
T1 делается по высоте равным T0
T1 делается по ширине таким, чтобы слева и справа остались виднЫ нужные (первая и последняя) колонки T0
левый край T0 совмещается с правым краем первой колонки.
Также на T1 скрываются колонки первая и последняя

модели обеих таблиц - одинакового класса - отображают данные из одного источника (но экземпляров модели - два, так как один экземпляр нельзя в два просмотра толкать)

В итоге, визуально имеем T1 без первой и последней колонок, остальные колонки мотаются. Справа и слева видны торчащие колонки T0 (первая и последня). Ну и нужно синхронизировать вертикальную прокрутку

плюсы: полная функциональность таблиц
минусы: придётся плотно посидеть с напильником
------------------------------
вариант 2:

скрыть первую и последнюю колонки
добавить виджету широкий border слева и справа, где вручную отрисовать имитацию колонок

плюсы: "малоинвазивность"
минусы: отрисовка вручную, ну и функционал колонок нужно реализовывать вручную, если нужна интерактивность
NicNici Дата 30.1.2019, 14:37
  Можно ли в QTableWidget закрепить первый и последний столбец, что бы при прокрутке они оставались на своих позициях, а столбцы между ними прокручивались?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 14.7.2025, 4:54