Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: noosooth от Август 07, 2006, 18:26



Название: QLine 4.1.4 (win)
Отправлено: noosooth от Август 07, 2006, 18:26
Жил у меня доморощенный виджет (некое подобие слайдера с несколькими диапазонами), а у него соответственно ползунки снизу, которые рисовались при помощи drawPolygon(..).
Выглядели они примерно так:
 (http://sds.ru/alex/slb413.png)

Все чудно работало до версии 4.1.4, после установки которой ползунки стали выглядеть вот так:
(http://sds.ru/alex/slb414.png)

Стал разбираться, чего там тролли опять учудили - вроде получается что линия под 45 градусов (North-East) по дефолту теперь
отрисовывается сл. образом:
(http://sds.ru/alex/line45_414.png)

Как ни крутил нарисовать нормальный ползунок в 4.1.4 под виндой не могу. :(

Проблема похоже в drawLine_midpoint_i(...) из qpaintengine_raster.cpp,  либо я что-то недосмотрел.
Что посоветуете?


Название: QLine 4.1.4 (win)
Отправлено: Racheengel от Август 08, 2006, 00:11
поточкам?


Название: QLine 4.1.4 (win)
Отправлено: noosooth от Август 08, 2006, 00:52
Цитата: "Racheengel"
поточкам?

Спасибо, я уже 2 точки фоном на ползунок вывел - оно малость подравнялось.

Я вот только не пойму это как говорится баг или фича?
Вроде не должно так быть.
Может троллям отписАть?

А то они запустят это дело, глядишь в релизе 4.2  эвольвента получится. :)


Название: QLine 4.1.4 (win)
Отправлено: Sergey B. от Август 08, 2006, 06:31
Цитата: "noosooth"
Цитата: "Racheengel"
поточкам?

Спасибо, я уже 2 точки фоном на ползунок вывел - оно малость подравнялось.

Я вот только не пойму это как говорится баг или фича?
Вроде не должно так быть.
Может троллям отписАть?

А то они запустят это дело, глядишь в релизе 4.2  эвольвента получится. :)


Пиши, у меня QModelIndex тоже с переходом на 414 перестал пахать, тролли  изменили сигнал с (QModelIndex &int) На (QModelIndex int), пустячёк а неприятно...


Название: QLine 4.1.4 (win)
Отправлено: LestorN от Август 08, 2006, 06:51
Это они кажись с антиалиасингом перестарались, попробуй дать виджету setRenderHint(QPainter::Antialiasing). И почитай в доках про систему координат...


Название: QLine 4.1.4 (win)
Отправлено: noosooth от Август 08, 2006, 13:31
Цитата: "LestorN"
Это они кажись с антиалиасингом перестарались, попробуй дать виджету setRenderHint(QPainter::Antialiasing).
И почитай в доках про систему координат...


Может они конечно и перестарались в этом направлении.
По крайней мере с вкл. антиалиасингом всё ровненько.
(http://sds.ru/alex/slb414_aalias.png)

Но оченно хотелось без антиалиасинга просто провести ровную линию. :)


Название: QLine 4.1.4 (win)
Отправлено: LestorN от Август 08, 2006, 13:42
почитай про систему координат, она там хитрая, в Assistente всё написано


Название: QLine 4.1.4 (win)
Отправлено: noosooth от Август 08, 2006, 14:16
Цитата: "LestorN"
почитай про систему координат, она там хитрая, в Assistente всё написано


Вы хотите сказать, что она изменилась начиная с версии 4.1.4?
Или что она неправильно работала до версии 4.1.4?


Название: QLine 4.1.4 (win)
Отправлено: LestorN от Август 09, 2006, 06:52
я с графикой практически не работаю... так что точно сказать не могу... а на глюк с кривой отрисовкой сталкнулся когда мучал QGraphicsView в 4.2 снапшоте... небольшие исследования показали что при включенном антиалиасинге рисуется примерно так как и ожидается, а при выключенном чуть не так...


Название: QLine 4.1.4 (win)
Отправлено: noosooth от Август 09, 2006, 11:33
Цитата: "LestorN"
я с графикой практически не работаю... так что точно сказать не могу... а на глюк с кривой отрисовкой сталкнулся когда мучал QGraphicsView в 4.2 снапшоте... небольшие исследования показали что при включенном антиалиасинге рисуется примерно так как и ожидается, а при выключенном чуть не так...

Понятно.
Иными словами "хитрая" система координат здесь не при делах.


Название: QLine 4.1.4 (win)
Отправлено: noosooth от Август 16, 2006, 17:37
Вот смотрю я на заголовок темы и не могу понять, о чем я думал когда
его писАл. Какой в баню QLine? Имелось ввиду конечно QPainter::drawLine().  Видимо на запчасти пора разбирать...

Короче согласились тролли что это bug.
 126038 - The drawLine() method of QPainter in some cases doesn't draw the line based on the specified points on Windows. (http://www.trolltech.com/developer/task-tracker/index_html?method=entry&id=126038)