Russian Qt Forum
Ноябрь 26, 2024, 18:23
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
QHeaderView Child scroll problems
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QHeaderView Child scroll problems (Прочитано 4457 раз)
djassan
Гость
QHeaderView Child scroll problems
«
:
Май 18, 2010, 14:08 »
Здравствуйте!
Создал класс наследник от QHeaderView, внутри ничего кроме метода заполнения данными.
И плюс прямо в конструкторе прописал setHorizontalScrollBarPolicy( Qt::ScrollBarAsNeeded );
Scroll есть, но при перемещении бегунка ничего не происходит, хотя по идее должно - весь header не вмещается в окно.
Попробовал написал свой метод реакции на перемещение бегунка, состоящий из вызова одного метода scroll(value,0) (унаследована от QWidget::scroll(int dx,int dy))
Но тогда перемещается вообще весь header, вместе со своим внутренним scrollBar, то есть вся ScrollArea что и понятно.
Как быть-то?
Как сделать работающий горизонтальный скролл для моего наследника от QHeaderView?
Создавать для него новую QScrollArea плохо, зачем, если у него своя есть встроенная.
Записан
crossly
Гость
Re: QHeaderView Child scroll problems
«
Ответ #1 :
Май 18, 2010, 14:20 »
я думал setHorizontalScrollBarPolicy применяется к вьюхе а не к хидеру.... ??
Записан
djassan
Гость
Re: QHeaderView Child scroll problems
«
Ответ #2 :
Май 18, 2010, 14:28 »
Забыл упомянуть, мой header отдельный элемент, он не в составе QTableView или QTableWidget.
Собственно основная моя задача в создании элемента состоящего из наследников QTableWidget и QHeaderView.
Поясню почему header отдельно, мне надо что бы можно было изменять ширину секций хедера,
не меняя ширину столбцов таблицы, то есть секция хедера может быть с шириной равной 1,2,3,4,5...ширине столбца таблицы.
А в QTableWidget я не смог сделать так, что бы при изменении пользователем ширины секции хедера,
не происходило изменение ширину столбца таблицы, поэтому разделил элементы, а теперь мне нужно сделать синхонный горизонтальный скрол соделжимого таблицы и секций хедера
Записан
crossly
Гость
Re: QHeaderView Child scroll problems
«
Ответ #3 :
Май 18, 2010, 14:42 »
вам не кажется что если размеры секции хидера и размеры столбцов будут отличатся то и размер скрола будет разный??... или я чего то не понимаю... ??
Записан
djassan
Гость
Re: QHeaderView Child scroll problems
«
Ответ #4 :
Май 18, 2010, 15:52 »
Так секций в хедере может быть 20, а столбцов в таблице 80. Каждая секция хедера имеет размер кратный размерам столбцов. Сумма длин секций хедера равна суммам широт столбцов.
То есть пользователь, допустим делает n-ую секцию хедера шириной в три столбца, и мы можем дальше работать с этими столбцами.
Элементы управления хедер и таблица связаны логически. Но физически это отдельные элементы, которые мне надо синхронизировать по скролу, чтоб при скроллинге не сползало.
Записан
djassan
Гость
Re: QHeaderView Child scroll problems
«
Ответ #5 :
Май 19, 2010, 12:56 »
Прошу прощения за сумбур!
Постараюсь сформулировать четче:
У QHeaderView как и у QTableWidget, есть своя ScrollArea.
Так вот у QTableWidget достаточно прописать свойство setHorizontalScrollBarPolicy( Qt::ScrollBarAsNeeded );, хотя оно и по умолчанию так,
и бегунок скрола видно и скролится все нормально.
У QHeaderView при прописывании setHorizontalScrollBarPolicy( Qt::ScrollBarAsNeeded );, бегунок видно, но сам хэдер на его движения не реагирует,
не скролится. В чем может быть дело?
Как и говорил ранее QHeaderView на форме отдельный виджет и не входит ни в состав QTableWidget, ни в состав QTableView.
Пробовал создать QScrollArea и поместить в него QHeaderView , скролинг работает нормально, а вот собственная scrollArea хэдера ни в какую.
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...