android widget 画矩形,Qt在Widget上绘制矩形

我需要在作为mainWindow的子项的小部件上绘制矩形。但是下面的代码在绘制Widget时没有成功,它是在父屏幕上绘制的。

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;

};

我附上了设计师的截图。

b9d12155fff9c85627f43e4c32b6d701.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值