Qt Рисование прямоугольника в виджетеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Qt Рисование прямоугольника в виджете

Сообщение Anonymous »

Мне нужно нарисовать прямоугольник на виджете, который является дочерним элементом mainWindow. Но приведенный ниже код не удается отрисовать виджет, он рисуется на родительском экране.

mainwindow.cpp

Код: Выделить всё

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{

ui->setupUi(this);
}

void MainWindow::paintEvent (QPaintEvent *e)
{
QPainter *painter = new QPainter (ui->widget);
painter->begin (this);
painter->drawRect(e->rect());
painter->end ();
}

void MainWindow::mouseMoveEvent(QMouseEvent *event){

update((QRect(LastPoint,event->pos())));
}

void MainWindow::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
LastPoint = event->pos();
}
}

MainWindow::~MainWindow()
{
delete ui;
}
mainwindow.hpp

Код: Выделить всё

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
void paintEvent (QPaintEvent *e);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
QPoint LastPoint;

~MainWindow();

private:
Ui::MainWindow *ui;
};
Скриншот дизайнера прикрепил.

Изображение


Подробнее здесь: https://stackoverflow.com/questions/337 ... -on-widget
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»