crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> сглаживание QGraphicsTextItem
efg
  опции профиля:
сообщение 28.9.2011, 23:23
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 6.5.2011
Пользователь №: 2658

Спасибо сказали: 2 раз(а)




Репутация:   0  


нормально сглаживаются только шрифты размером от 64 и больше (установка флагов не помогает):

для шрифтов меньших размеров используется cleartype, если он включен в системе (тестил только под шindoшs7 x64)
ссылки по теме:
http://ru.w3support.net/index.php?db=so&id=1652590
http://discuss.joelonsoftware.com/default....joel.3.726516.6
http://blogs.msdn.com/b/e7ru/archive/2009/...-windows-7.aspx
http://msdn.microsoft.com/en-us/library/ms901093.aspx
вопрос ребром: как включить стандартный кьютовый рендеринг для вывода вообще всей графики в приложении, чтобы сглаживание работало под разными осями одинаково и независимо от всяких приблуд вроде шindoшs gdi, как, например, в фотошопе?

Сообщение отредактировал efg - 29.9.2011, 4:53
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Roma_F
  опции профиля:
сообщение 29.9.2011, 9:15
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 23.8.2011
Пользователь №: 2826

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата("J.Blanchette")
Когда точность важнее эффективности, мы можем рисовать по Qlmage и копировать результат на экран. В этом случае Qt всегда использует собственный внутренний графический процессор, и результат на всех платформах получается идентичным. Единственное ограничение заключается в том, что Qlmage, по которому мы рисуем, должен создаваться с аргументом Qlmage::Format_RGB32 или Qlmage::Format_ARGB32_Premultiplied.

void MyWidget::paintEvent(QPaintEvent *event) 
{
    Qlmage image(size(), Qlmage::Format_ARGB32_Premultiplied);
    QPainter imagePainter(&image);
    imagePainter.initFrom(this);
    imagePainter.setRenderHint(QPainter::Antialiasing, true);
    imagePainter.eraseRect(rect());
    draw(&imagePainter);
    imagePainter.end();
    QPainter widgetPainter(this);
    widgetPainter.drawImage(0, 0, image);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
efg
  опции профиля:
сообщение 2.10.2011, 16:07
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 6.5.2011
Пользователь №: 2658

Спасибо сказали: 2 раз(а)




Репутация:   0  


Цитата(Roma_F @ 29.9.2011, 10:15) *
Цитата
Когда точность важнее эффективности, мы можем рисовать по Qlmage и копировать результат на экран

бланшета-то все читали
Цитата("Агата Кристи - Серое Небо")
Только это не поможет
Тем, кто любит рисовать.
Любит, любит, любит рисовать.
Любит, любит, любит рисовать.

не советовали бы, если сами не знаете
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Roma_F
  опции профиля:
сообщение 3.10.2011, 11:24
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 23.8.2011
Пользователь №: 2826

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(efg @ 2.10.2011, 16:07) *
не советовали бы, если сами не знаете


извините, больше не буду (

p.s. песня мне тоже понравилась )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
efg
  опции профиля:
сообщение 10.11.2011, 1:55
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 6.5.2011
Пользователь №: 2658

Спасибо сказали: 2 раз(а)




Репутация:   0  


а, ну да. если кому-то ещё это вдруг понадобится. плохое, но в некоторых случаях решение: textItem->scale(1.0001f,1.0001f);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 5:33