hello,大家好。
本人学习了一段时间的Qt,今天在公司电视大屏有个画板工具功能,灵机一动制作一个简易的画板程序。
本文主要介绍如何采用QWidget,QPainter制作画板。
画板功能:全屏无边框画板,支持手绘,右键(偷懒= -0- =)擦除。
开发工具:Qt5.9.5 Vs2015 (没用到什么高级功能,其他版本的也应该支持- 0 -)
程序思路:
- 创建画板界面
- 鼠标拖动模拟画笔
- 右键擦除所有绘画
程序难点:
- 绘制连贯(绘制的图形不出现断点)
- 增加绘画效率(画笔拖动过程中,绘图不卡顿)
我们按照程序思路一步一步完成我们的程序:
- 创建画板界面:
class VDCSketchpadWidget : public QWidget {
Q_OBJECT
public:
explicit VDCSketchpadWidget(QWidget *parent = 0);
~VDCSketchpadWidget();
private:
void paintEvent(QPaintEvent *event);
private:
Ui::VDCSketchpadWidget *ui;
};
实现画板全屏无边框,界面构造函数增加如下代码
setWindowFlags(Qt::BypassWindowManagerHint|Qt::Drawer);//全无边框;画板 setWindowState(Qt::WindowFullScreen); //全屏
2.实现鼠标拖动模拟画笔
现附上代码
class VDCSketchpadWidget