Russian Qt Forum
Ноябрь 26, 2024, 08:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача параметром QPainter  (Прочитано 3815 раз)
QtPainter
Гость
« : Июнь 24, 2013, 08:28 »

Не работает следующий код:
QPainter p(ui->widget);
p.setBrush(QBrush(QColor("red")));
p.drawLine(QPoint(0,0), QPoint(200, 200));

Как передавать QPaintDevice из формы?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июнь 24, 2013, 08:31 »

Рисовать на виджете можно только в paintEvent.
Записан
QtPainter
Гость
« Ответ #2 : Июнь 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);

}
Это тоже не работает
« Последнее редактирование: Июнь 24, 2013, 08:42 от QtPainter » Записан
Bepec
Гость
« Ответ #3 : Июнь 24, 2013, 08:44 »

Рисовать на виджете можно только в функции paintEvent.

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

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

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

PPS ваш ник является отражением вашей ярости? Веселый
Записан
QtPainter
Гость
« Ответ #4 : Июнь 24, 2013, 08:47 »

Тогда получается что в QPainter есть смысл передавать только this, потому что что не передавай а рисовать не будет?
Да мой ник отражает ярость. Мне не нравиться что рисовать на виджете из вне нельзя
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Июнь 24, 2013, 08:51 »

Да мой ник отражает ярость. Мне не нравиться что рисовать на виджете из вне нельзя
Можно рисовать в теневой буфер (QImage/QPixmap), а его уже рисовать в paintEvent.
Записан
Bepec
Гость
« Ответ #6 : Июнь 24, 2013, 08:53 »

Ну что сказать - такова система. Сперва она не нравится, а потом привыкаешь.

PS перепишите Qt Веселый

PPS вот недавний проект, посмотрите, авось понравится Веселый

https://dl.dropboxusercontent.com/u/62712483/Other/testPaint.zip
« Последнее редактирование: Июнь 24, 2013, 08:55 от Bepec » Записан
QtPainter
Гость
« Ответ #7 : Июнь 24, 2013, 09:14 »

Итог: переписал все заново). Всем спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.089 секунд. Запросов: 23.