Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt 4.4.3] QPainter QImage drawText. Пара вопросов. 
V
    Опции темы
SABROG
  Дата 21.1.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



user posted image

Эксперименитурю с анимацией. Возникли следующие неразрешенные вопросы:

При рисовании на QPixmap ничего не рисуется и выдается в консоль:
Код

QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::end: Painter not active, aborted


Поэтому я использую QImage. Но я хочу, чтобы размер QImage динамически менялся в соответствии с размером QWidget'a. scaled не подходит, т.к. не работает с пустым изображением, да и по логике нужен совсем не для resize'a. 

Как изменить размер QImage?

Почему при использовании метода:

Код

painter.drawText(rect(), QString::number(counter++));


текст рисуется на QImage, а при использовании следующих методов - нет?

Код

painter.drawText(rect(), Qt::AlignCenter, QString::number(counter++));


Код

painter.drawText(0, 0, QString::number(counter++));


Исходный код с .pro файлом в аттаче.

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  animate.zip 4,07 Kb


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
SABROG
Дата 21.1.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



С методом:

Код

painter.drawText(0, 0, QString::number(counter++));


Разобрался. Тут y - baseline (левый нижний угол начала текста). Поэтому надо корректировать y еще и на высоту шрифта.

С этим остается непонятка, если размер виджета больше размера QImage, то картинка не отрисовывается.
Код

painter.drawText(rect(), Qt::AlignCenter, QString::number(counter++));


Добавлено @ 16:47
Всё всем спасибо. Вопрос решен, сам же я и накосячил. Надо было вместо

Код

painter.drawText(rect(), Qt::AlignCenter, QString::number(counter++));


Писать.

Код

painter.drawText(image.rect(), Qt::AlignCenter, QString::number(counter++));


Просто текст центрировался за пределами экрана.

В итоге 2 косяка: кривые руки и плохое понимание документации.
---
В принципе вопрос с изминением размера QImage - остался.

Это сообщение отредактировал(а) SABROG - 21.1.2009, 16:51


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.