Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: ser1801 от Декабрь 25, 2009, 02:36



Название: Trouble with drawPoint :(
Отправлено: ser1801 от Декабрь 25, 2009, 02:36
Не могу нарисовать точку на Pixmap'e. Вот код функции:

Код:
//-------------------------------------------------------------------------
void Fibon::draw_func(QPixmap Img){
//
    painter.begin(&Img);
    painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
    pen.setColor(Qt::red);
    pen.setWidth(2);
    painter.setPen(pen);
       painter.translate(200,200);
       brush.setColor(Qt::red);// на всякий случай
       painter.drawPoint(10,25);
       painter.drawPoint(QPointF(10,20));
    painter.drawLine(0,0,400,0-400);
    painter.end();
    la_pic->setPixmap(Img);

Точки не ставятся, а вот линия рисуется... Почему?


Название: Re: Trouble with drawPoint :(
Отправлено: Dendy от Декабрь 25, 2009, 02:58
Попробуйте подставить другой QPen, созданый на стеке. Например:

Код
C++ (Qt)
QPen pen( Qt::blue );


Название: Re: Trouble with drawPoint :(
Отправлено: ser1801 от Декабрь 25, 2009, 03:07
Спасение утопающих...

Кароче, точка не ставится, если pen.setWidth не единица.
Т.е. нельзя поставить точку pen'ом больше единицы.


Название: Re: Trouble with drawPoint :(
Отправлено: Dendy от Декабрь 25, 2009, 03:14
Неудивительно, на то он и point, а не dot. Зато всегда можно нарисовать кругляшками.


Название: Re: Trouble with drawPoint :(
Отправлено: ser1801 от Декабрь 25, 2009, 03:30
Ты прав)
Сижу сейчас, парюсь с кругляшками)) Рисую drawEllipse(x,y,1,1), все равно видна дырка от бублика(
Как закрашенные рисовать? :) Подскажи, а?)


Название: Re: Trouble with drawPoint :(
Отправлено: Dendy от Декабрь 25, 2009, 03:46
В документации всё есть. Круги используют QBrush для заполнения внутренности. Идеальный круг без обода:

Код
C++ (Qt)
painter.setPen( Qt::NoPen );
painter.setBrush( Qt::red );
painter.drawCircle( ... );

Для сглаженых краёв пользоваться QPainter::RenderHint_Antialiasing.


Название: Re: Trouble with drawPoint :(
Отправлено: ser1801 от Декабрь 25, 2009, 03:57
Хм... Функции drawCircle () нет =)