Russian Qt Forum
Ноябрь 24, 2024, 22:00
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Безформенная таблица
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Безформенная таблица (Прочитано 6637 раз)
Flakes
Гость
Безформенная таблица
«
:
Май 14, 2008, 11:15 »
Не знаю как объяснить, но в общем необходимо научить QTableView, чтоб ширина каждой ячейки была уникальная, точней согласно ширине ее содержимого.
Выглядеть это должно примерно вот так:
Почти как void QTableView::resizeColumnsToContents (), только этот метод делает это, взяв за минимальную ширину самую широкую ячейку.
Как это можно было бы осуществить?
«
Последнее редактирование: Май 14, 2008, 11:18 от Flakes
»
Записан
BRE
Гость
Re: Безформенная таблица
«
Ответ #1 :
Май 14, 2008, 11:26 »
Цитата: Flakes от Май 14, 2008, 11:15
Не знаю как объяснить, но в общем необходимо научить QTableView, чтоб ширина каждой ячейки была уникальная, точней согласно ширине ее содержимого.
Выглядеть это должно примерно вот так:
Почти как void QTableView::resizeColumnsToContents (), только этот метод делает это, взяв за минимальную ширину самую широкую ячейку.
Как это можно было бы осуществить?
Хм, наверное наследуем класс от QAbstractItemView, и руками все отрисовываем.
Записан
EhTemka
Гость
Re: Безформенная таблица
«
Ответ #2 :
Май 14, 2008, 11:30 »
Ну если уж отрисовывать "руками" то наследовать нужно QItemDelegate...
Записан
Flakes
Гость
Re: Безформенная таблица
«
Ответ #3 :
Май 14, 2008, 11:42 »
Цитата: EhTemka от Май 14, 2008, 11:30
Ну если уж отрисовывать "руками" то наследовать нужно QItemDelegate...
спасибо, кажется то что надо...
Записан
Flakes
Гость
Re: Безформенная таблица
«
Ответ #4 :
Май 14, 2008, 23:33 »
немного запутался, через void QItemDelegate::paint () я могу управлять отрисовкой содержимого ячейки, а что отрисовывает саму ячейку...
поправьте меня плиз
Записан
EhTemka
Гость
Re: Безформенная таблица
«
Ответ #5 :
Май 16, 2008, 12:16 »
У тебя таблица должна быть стической или динамической (то бишь обновлятся постоянно)?
И вообще мне кажется что реализовать с помощью QAbstractItemView это довольно проблематично(хотя могу и ошибаться)...
Попробуй капнуть в сторону QGraphicsScene/QGraphicsView
«
Последнее редактирование: Май 16, 2008, 12:22 от EhTemka
»
Записан
Tonal
Гость
Re: Безформенная таблица
«
Ответ #6 :
Май 16, 2008, 18:20 »
Мне кажется ошибаешься.
Посмотри хотя бы $(QTDIR)/examples/itemviews/chart
Там и справа и слева наследники QAbstractItemView...
Записан
EhTemka
Гость
Re: Безформенная таблица
«
Ответ #7 :
Май 16, 2008, 20:12 »
Цитата: Tonal от Май 16, 2008, 18:20
Мне кажется ошибаешься.
Посмотри хотя бы $(QTDIR)/examples/itemviews/chart
Там и справа и слева наследники QAbstractItemView...
Посмотрел пример... Тут четь ли не весь AbstractItemView переписан. Не думаю что это проще чем QGraphicsScene/QGraphicsView. Хотя всё зависит от конкретной задачи
Записан
Flakes
Гость
Re: Безформенная таблица
«
Ответ #8 :
Май 19, 2008, 15:10 »
Ясно, все куда сложней чем кажется. Я хотел было наследовать TableView и из соурсов перепахать какой нить paint метод под себя или что то в этом роде.
P.S. таблица динамическая.
Немножко подробней объясню . Мне функциональность таблицы не нужна, просто когда попал мне в руки проект - уже с таблицей это было реализовано. Я думаю просто сделаю это простым RichText. Главное чтоб выводилось все сплошняком, как будто одним предложением.
«
Последнее редактирование: Май 19, 2008, 15:16 от Flakes
»
Записан
Tonal
Гость
Re: Безформенная таблица
«
Ответ #9 :
Май 20, 2008, 11:48 »
Ну в html это отформатировать проблем как я понимаю быть не должно:
Внешняя таблица с одним столбцом и для каждой строко своя внутренняя табличка с нужным форматированием.
Эжели не нужно редактирование и всякое выделение - можно QTextBrowser использовать.
А если нужно - надо думать...
Может оказаться, что наследование от QAbstractItemView наиболее удобный и простой вариант.
Записан
Flakes
Гость
Re: Безформенная таблица
«
Ответ #10 :
Май 20, 2008, 16:36 »
Цитата: Tonal от Май 20, 2008, 11:48
Эжели не нужно редактирование и всякое выделение - можно QTextBrowser использовать.
А если нужно - надо думать...
Может оказаться, что наследование от QAbstractItemView наиболее удобный и простой вариант.
Пока нет необходимости редактирования, но может понадобиться в дальнейшем, и я бы срадостью сохранил бы таблицу. Хорошо, пускай я наследую QAbstractItemView, куда дальше копать? Я так понимаю мне нужно переопределить какой-то public метод, а именно тот который столбик рисует, чтоб он брал не общий size, а уникальный для каждой ячейки, но в исходниках я ничего не нашел.
P.S. все таки я еще нуб
P.S.S. я еще покапался, вроде QHeader отвечает за отрисовку всяких *Item*View
«
Последнее редактирование: Май 20, 2008, 16:55 от Flakes
»
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...