Russian Qt Forum
Ноябрь 24, 2024, 09:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
CheckBox/ComboBox в Header'e TableWidget'a
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: CheckBox/ComboBox в Header'e TableWidget'a (Прочитано 11385 раз)
Boris
Гость
CheckBox/ComboBox в Header'e TableWidget'a
«
:
Февраль 28, 2008, 18:14 »
Давно бьюсь над делемой: необходимо добиться подобия автофильтра в Excel'e/OpenOffic'e. Т.е. каким-то образом закрепить(сделать не прокручиваемой первую строчку) или вставить ComboBox в заголовок. У кого-нибудь есть наработки в этом направлении?
Записан
Вячеслав
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #1 :
Февраль 28, 2008, 18:47 »
Ну ой
Я на такое не сподвигся - обошелся панелью сверху QTableWidget'a
QHeaderView переписывать .... муууторно
Записан
ритт
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #2 :
Февраль 28, 2008, 22:43 »
а я сподвигся
Записан
Вячеслав
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #3 :
Февраль 28, 2008, 23:37 »
Таки может поделишься кусочком ?
Записан
ритт
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #4 :
Февраль 29, 2008, 01:02 »
баш на баш
на самом деле это нечто комплексное, а не просто комбы в хидере
включает перегруженный QHeaderView, перегруженную запатченную QSortFilterProxyModel и виджет для управления всем этим добром + перегруженный setColumnHidden в тэйблвтю, т.к. по непонятным причинам хайд колуменов осуществляется не из хидера, а из таблицы (в то время, как все остальные операции со столбцами производятся из хидервью) /* если я правильно помню */
так что, подумай ещё раз стоит ли связываться с моими поделками
Записан
Boris
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #5 :
Февраль 29, 2008, 08:19 »
Может есть более простой способ? Может можно заставить tableWidget НЕ прокручивать первую строку? Я уже задавал этот вопрос здесь, мне сказали смотри на QAbstractItemView. Я смотрел смотрел, но ничего не высмотрел... Может тут есть какие наработки?.
xep
Может покажешь код (особливо QHeaderView интересует), если не жалко конечно. А мы может допилим чего, чем черт не шутит.
Записан
Вячеслав
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #6 :
Февраль 29, 2008, 10:02 »
Цитата: xep от Февраль 29, 2008, 01:02
баш на баш
так что, подумай ещё раз стоит ли связываться с моими поделками
Гы
А фиг его знает - не посмотришь ниасилишь
Может действительно имеет смысл сообща таблицу допилить ....
Я тут еще меееедленно думаю как-бы строку(в таблице) сделать из нескольких элементов ( как журнал проводок в 1с) ......
Записан
vregess
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #7 :
Февраль 29, 2008, 13:46 »
Цитата: Вячеслав от Февраль 29, 2008, 10:02
Я тут еще меееедленно думаю как-бы строку(в таблице) сделать из нескольких элементов ( как журнал проводок в 1с) ......
а это как? что за строка из нескольких элементов
Записан
Вячеслав
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #8 :
Февраль 29, 2008, 13:53 »
Млин, ну как-бы это на пальцах - одно поле под другим
Записан
Boris
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #9 :
Август 01, 2008, 13:13 »
Константин
, вы можете показать только кусок кода связанный с HeaderView (да общую стратегию я понял относледоваться и вставить), затруднения вызывает как раз вторая часть как корректно вставлять? Много гуглил по данному вопросу вопросов подобных много а ответов нет
Записан
ритт
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #10 :
Август 01, 2008, 23:00 »
я уж и забыл про эту ветку...
"кусок кода, связанный с хидервью" - это 30кб текста
суть проста - перегружаешь хидервью::пэинтСекшн и делаешь там сетГеометри связанного с секцией комбобокса
в самом начале у меня так и было, но сразу же отказался от такой херни из-за кучи мелких кривуль, выползших из такой простоты
сейчас в углу секции рисуется кнопочка по типу комбовской "попап", перегружены методы отлова событий мыши - осуществляет перерисовку кнопочки для соответствующих состояний, а непосредственно по клику на "кнопку" (на самом деле ведь это тупо пиксмап) происходит отображение листвью в режиме попап, в котором у нас список значений для фильтрации. список строится из данных исходной модели, возвращаемых для фильтерРоле...
всё это счастье связано сигналами с перегруженной сортфильтерпроксимоделью, которая принимает
несколько
фильтров - по регэкспу на столбец
код приводить не буду, т.к. это наколенная работа и мне тупо стыдно показывать _это_
когда будет достаточно времени, отшлифую до вменяемого состояния и где-нибудь выложу...под "пивной лицензией"
Записан
Boris
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #11 :
Август 02, 2008, 07:54 »
Кнопочку нарисовать... попробую. А отобразить строчку (текущую выбранную) из фильтра тоже что-то отрисовывать надо?
Записан
ритт
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #12 :
Август 02, 2008, 08:11 »
в том-то и дело, что рисовать на хидере по-сути негде (тупо места не хватает. когда вначале комбик рисовал, увеличивал высоту хидера вдвое - эффект весьма убогий). а в моём случае может быть и не одна строчка, а список масок для поиска (рэгекспы поддерживают списки через "(|)" ) - поэтому вместо рисования просто подсвечиваю цветом секции, у которых фильтр непустой, а в тултипе/статустипе этой секции вывожу подробно что за фильтр установлен
см. скрин
http://prog.org.ru/forum/index.php/topic,6653.msg37899.html#msg37899
- видно убогие стрелочки на каждой секции. на скрине фильтры не установлены, но могли бы...просто представь
Записан
Boris
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #13 :
Август 02, 2008, 08:47 »
>поэтому вместо рисования просто подсвечиваю цветом секции, у которых фильтр непустой
т.е. текущее значение фильтра данной ячейки увидеть нельзя не щелкнув по кнопочке?
Я уже спрашивал тут выше: может можно просто закрепить несколько первых строк tableWiew'а... понятно что как-то через QAbstractItemView но я так и не переварил как это можно.
Записан
ритт
Гость
Re: CheckBox/ComboBox в Header'e TableWidget'a
«
Ответ #14 :
Август 02, 2008, 09:20 »
> т.е. текущее значение фильтра данной ячейки увидеть нельзя не щелкнув по кнопочке?
можно не кликать, а просто подвести и прочитать в тултипе/статустипе
> Я уже спрашивал тут выше: может можно просто закрепить несколько первых строк tableWiew'а... понятно что как-то через QAbstractItemView но я так и не переварил как это можно.
QAbstractItemView - наследние скроллбокса. ответь сам на свой вопрос: может можно просто закрепить несколько первых пикселей скроллбокса чтобы они не прокручивались, а остальное прокручивалось?
например, можно сделать обманку - как будто первая строка зафиксирована: сместить во вьюхе все строки на +1, а над нулевой строкой зафиксировать виджет, внешне похожий на строку вьюхи, но с "альтернативным" содержимым
можно ещё побаловаться с QAbstractItemView::verticalOffset()...но я, честно говоря, не помню _как_ оно фактически влияет на геометрию вьюхи
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...