qt有它的绘图事件方法,我们重新写就可以了
void paintEvent(QPaintEvent *);//从写qt绘图事件处理函数
在mainwindow.h中重新声明绘图方法
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include<QPainter>
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
void paintEvent(QPaintEvent *);//从写qt绘图事件处理函数
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
在mainwindow.h中重新定义绘图方法
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
//---------------------------------------------在这里------------------------------//
void MainWindow::paintEvent(QPaintEvent *)//从写qt绘图事件处理函数
{
//-------------------设置画笔--------------------//
QPainter painter( this);
QPen pen(QColor(255,0,0));//创建一个画笔,并且设置其颜色
pen.setWidth(3);//设置画笔大小
pen.setStyle(Qt::DashDotLine);//设置画笔样式
painter.setPen(pen);//把画笔装上去
//----------------------画东西--------------------//
painter.drawLine(QPoint(0,0),QPoint(100,100));//画一条斜线
painter.drawEllipse(QPoint(100,100),20,20);//画一个圆
painter.drawEllipse(QPoint(100,100),50,80);//画一个椭圆
painter.drawRect(100,100,30,30);//正方形
painter.drawRect(100,100,30,80);//长方形
QFont font("宋体",50,QFont::Bold,true);//第一个参数设置字体,第二个设置大小,第三个设置斜体,第四个,试试就知道了
font.setUnderline(true);//设置下划线
painte