LINUX.ORG.RU

qt4 рисование внутри формы.


0

1

Нашел как рисовать создавая новое окно программно. Создал класс наследственный от QWidget, в main прописываю [code] PaintWidget parent(0); parent.show(); [/code] B и появляется окошко в котором нарисовано то что я нарисовал в моём paint_Event. Но Хотелось бы оставить Main таким как он есть

[code = cpp] int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }

[/code] В ui добавить QWidget и уже в нём рисовать. Как достучатся до виджета который я кинул на формочку в ui? И переопределить его OnPaint?


>переопределить его OnPaint?

унаследую этот виджет в свой класс и переопределяй на здоровье

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Был бы благодарен если бы вы показали как наследовать именно этот виджет в свой класс?

Было бы идеально если бы я мог сделаь както так void MainWindow::on_pushButton_clicked() { QPainter* paint = new QPainter(ui->widget); paint->drawLine(10,10,20,20); } Но завершается с Ошибкой.

QPainter::begin: Widget painting can only begin as a result of a paintEvent

vsrmis
() автор топика

.hh

proteced:
   void paintEvent(QPaintEvent *);
.cc
void foo::paintEvent(QPaintEvent *)
{
     QPainter p;
     p.begin(this);
     p.drawSomething();        // <-- вот здесь твой код
     p.end();

}

mi_estas
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.