Russian Qt Forum
Ноябрь 24, 2024, 21:27
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу (Прочитано 3456 раз)
Маус
Гость
CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу
«
:
Январь 12, 2013, 12:22 »
В делегате меняю шрифт, при изменении размера текст "выползает" вправо за границы колонки QTreeView. Даже если в соседней колонке есть информация, то она просто затирается. Но если выделить строку, то в текущей (выделенной строке) обрезается правильно. Qt 4.7
void CtableMyTreeDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QStyleOptionViewItem myOption = option;
myOption.font = QFont(sMyFont,nFontSize,50,false);
drawDisplay(painter, myOption, myOption.rect, text);
drawFocus(painter, myOption, myOption.rect);
}
Вариант в ModelView не подходит, т.к. он не обрабатвает элементы с своими делегатами (а так конечно работает):
QVariant CtableMyTreeModel::data(const QModelIndex &index, int role) const
{
case Qt::FontRole:
return QFont(sMyFont,nFontSize,50,false);
}
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу
«
Ответ #1 :
Январь 12, 2013, 13:58 »
Код:
painter.save();
painter.setClipRect(opt.rect);
...paint...
painter.restore();
Должно помочь. По идее клипать должен тривью, но я не помню в нем такого кода.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу
«
Ответ #2 :
Январь 12, 2013, 14:36 »
Цитата: Авварон от Январь 12, 2013, 13:58
По идее клипать должен тривью, но я не помню в нем такого кода.
Неа, клипает QStyle::drawControl().
Записан
Qt 5.11/4.8.7 (X11/Win)
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу
«
Ответ #3 :
Январь 12, 2013, 14:52 »
А если делегат, внезапно, не StyledItem?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу
«
Ответ #4 :
Январь 12, 2013, 15:04 »
Цитата: Авварон от Январь 12, 2013, 14:52
А если делегат, внезапно, не StyledItem?
Ну и что?
StyledItem в отличии от простого Item всего лишь поддерживает CSS.
Отрисовка обоих всё равно делается через QStyle::drawControl().
Записан
Qt 5.11/4.8.7 (X11/Win)
Маус
Гость
Re: CtableMyTreeDelegate::paint при изменении шрифта текст выползает за границу
«
Ответ #5 :
Январь 12, 2013, 15:21 »
Авварон, спасибо! Помог первый ответ! Проблема РЕШЕНА!
painter.save();
painter.setClipRect(opt.rect);
...paint...
painter.restore();
господа, не могли бы зайти еще в
http://www.prog.org.ru/topic_23957_0.html
есть серьезная проблема с утечкой памяти
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...