Russian Qt Forum

Qt => Вопросы новичков => Тема начата: QtPainter от Июнь 24, 2013, 08:28



Название: Передача параметром QPainter
Отправлено: QtPainter от Июнь 24, 2013, 08:28
Не работает следующий код:
QPainter p(ui->widget);
p.setBrush(QBrush(QColor("red")));
p.drawLine(QPoint(0,0), QPoint(200, 200));

Как передавать QPaintDevice из формы?


Название: Re: Передача параметром QPainter
Отправлено: Old от Июнь 24, 2013, 08:31
Рисовать на виджете можно только в paintEvent.


Название: Re: Передача параметром QPainter
Отправлено: QtPainter от Июнь 24, 2013, 08:40
Вы хотите сказать что рисовать на виджете можно только в paintEvent этого виджета? Тогда получается нельзя передавать ничего кроме this, так как не будет рисовать. Если можно рисовать на других виджетах то вот код:
void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(ui->widget);
    QPixmap pix(":/pixmap/1.jpeg");
    painter.drawPixmap(QPoint(0,0), pix);

}
Это тоже не работает


Название: Re: Передача параметром QPainter
Отправлено: Bepec от Июнь 24, 2013, 08:44
Рисовать на виджете можно только в функции paintEvent.

Можно использовать буфер для рисования - Pixmap. Тогда вы сможете рисовать в любой момент, но нужно будет обновлять виджет.

Это система принята в Qt.

PS уже была такая тема недавно. Мб стоит какой нить бесплатный хостинг взять для примерчиков?

PPS ваш ник является отражением вашей ярости? :D


Название: Re: Передача параметром QPainter
Отправлено: QtPainter от Июнь 24, 2013, 08:47
Тогда получается что в QPainter есть смысл передавать только this, потому что что не передавай а рисовать не будет?
Да мой ник отражает ярость. Мне не нравиться что рисовать на виджете из вне нельзя


Название: Re: Передача параметром QPainter
Отправлено: Old от Июнь 24, 2013, 08:51
Да мой ник отражает ярость. Мне не нравиться что рисовать на виджете из вне нельзя
Можно рисовать в теневой буфер (QImage/QPixmap), а его уже рисовать в paintEvent.


Название: Re: Передача параметром QPainter
Отправлено: Bepec от Июнь 24, 2013, 08:53
Ну что сказать - такова система. Сперва она не нравится, а потом привыкаешь.

PS перепишите Qt :D

PPS вот недавний проект, посмотрите, авось понравится :D

https://dl.dropboxusercontent.com/u/62712483/Other/testPaint.zip


Название: Re: Передача параметром QPainter
Отправлено: QtPainter от Июнь 24, 2013, 09:14
Итог: переписал все заново). Всем спасибо!