qt中的所有的图都是画出来的。
例如:我们的按钮、窗口、标签上的图
画图需要两个东西:
画家:QPainter 画板:QPaintDevice(常见的控件 按钮 label 窗口...)
1. 绘图
Widget::~Widget()
{
delete ui;
}
//绘图事件
void Widget::paintEvent(QPaintEvent *event)
{
qDebug() << "绘图";
//绘图一定要在这个函数中
//画家
QPainter p(this); //定义一个画家,并且指定了绘图设备
p.drawPixmap(0, 0, this->width(), this->height(), QPixmap(":/new/prefix1/image/微信图片_20240226092812.jpg"));
QPen pen;
pen.setColor(QColor(Qt::red));
//将笔给画家
p.setPen(pen);
p.drawLine(0, 0, 300, 300);
}
2. 绘图更新
//画图事件
void Widget::paintEvent(QPaintEvent *event)
{
QPainter p(this);
p.drawPixmap(i, j, 300, 300, QPixmap(":/new/prefix1/image/1890.gif_wh860.gif"));
}
//鼠标点击事件
void Widget::mousePressEvent(QMouseEvent *event)
{
i = event->x();
j = event->y();
//刷新绘图
this->update();