Qt 基本绘图技术
2016-06-29 11:33
246 查看
Qt 基本绘图
关于Qt基本绘图简单介绍一下,也算是给自己加深印象,mark一下首先要重写基类的paintEvent(QPaintEvent*) 事件,在paintEvent函数中就可以开始自己的绘图,如果需要对鼠标事件处理就重写相应的鼠标事件函数如:mouseMoveEvent(QMouseMoveEvent*),好了,废话不多说,这里只是简单的展示绘图,不涉及鼠标
下面是自己的一个示例代码,仅供参考:
void MainWindow::paintEvent(QPaintEvent *event) { QRadialGradient gradient(50, 50, 50, 50, 50); gradient.setColorAt(0, QColor::fromRgbF(0, 1, 0, 1)); gradient.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0)); QPainter paint(this); //角度渐变 paint.setRenderHint(QPainter::Antialiasing); const int r = 150; QConicalGradient conicalGradient(0, 0, 0); //角度渐变,前两个参数是渐变的中心点,后一个是渐变的起始角度 conicalGradient.setColorAt(0.0, Qt::red); conicalGradient.setColorAt(60.0/360.0, Qt::yellow); //参数是角度比列和颜色 conicalGradient.setColorAt(120.0/360.0, Qt::green); conicalGradient.setColorAt(180.0/360.0, Qt::cyan); conicalGradient.setColorAt(240.0/360.0, Qt::blue); conicalGradient.setColorAt(300.0/360.0, Qt::magenta); conicalGradient.setColorAt(1.0, Qt::red); paint.translate(r, r); //改变坐标原点 QBrush brush(conicalGradient); paint.setPen(Qt::NoPen); paint.setBrush(brush); paint.drawEllipse(QPoint(0, 0), r, r); //渐变(线性渐变、辐射渐变、角度渐变) QLinearGradient linearGradient(60, 50, 200, 200);//线性渐变 linearGradient.setColorAt(0.2, Qt::white); linearGradient.setColorAt(0.6, Qt::green); linearGradient.setColorAt(1.0, Qt::black); paint.setBrush(QBrush(linearGradient)); paint.drawEllipse(150, 50, 200, 150); paint.drawLine(80, 100, 650, 500); paint.setPen(Qt::red); paint.drawRect(10, 150, 100, 400); paint.setPen(QPen(Qt::green, 5)); //paint.setBrush(Qt::blue); paint.setBrush(gradient); paint.drawEllipse(450, 150, 400, 200); paint.setRenderHint(QPainter::Antialiasing, true); //消除锯齿(反走样),为了提高效率一般不进行反走样 paint.drawEllipse(50, 150, 400, 200); //分别设置画刷、线样式(虚线/实线)、笔帽样式(线的末端)、连接样式(线拐角处) QPen pen(Qt::green, 3, Qt::DashDotLine, Qt::RoundCap, Qt::RoundJoin); paint.setPen(pen); paint.drawRect(200, 150, 400, 200); }
相关文章推荐
- Qt学习(四)---实例涂鸦画板mspaint
- Qt QLineEdit 仿QQ签名框
- WIN7+Qt5.5.0+qwt-6.1.3环境搭建
- Qt实时显示系统时间
- qt windows分发工具使用(windoployqt)
- qtcreator增加doxygen注释
- QT中代码中与设计器中控件信号与SLOT连接(原来还可以这样连接)
- Win7下qt5.3.1+opencv2.4.9编译环境的搭建(好多 Opencv2.4.9源码分析的博客)
- vs指定QT的工作目录(其它项目也是如此)
- QT 托盘
- Qt 录音程序
- QT窗口布局-停靠窗口类QDockWidget
- Qt:记事本源代码分享(新手入门,老鸟勿喷)
- qtcretor中常用快捷键集合
- MFC与QT区别?
- 初学Qt(QMainWindow入门)
- Qt窗口的标题栏自绘
- Qt布局管理
- Qt:多线程
- QTP之drag and drop