关于QPainter无法绘制问题
今天使用了QPainter绘制背景以及窗体上的控件
但是所有语法都正确,资源路径也对,程序也没有报错,也是写在paintevent里的,但是就是不见影,这是怎么回事呢
看下原来的代码
QPainter pal;QBrush brush(QPixmap(":/images/rule/gameRule.png")); pal.setBrush(brush);pal.drawRect(0,0,RULE_WINDOW_WIDTH,RULE_WINDOW_HEIGHT);QWidget::paintEvent(e);
经过我不断的debug尝试,发现原来QPainter类构建的时候没有设置绘画设备,我的天,在创建QPainter的时候可以在构造参数中传递绘画设备指针* QPaintDevice,大多情况下就是this,因为是在窗体上绘制嘛,QWidght也继承于QPaintDevice,其中QPaintDevice主要分为三种:QPixmap、QImage和QPicture
改进后:
QPainter pal(this);QBrush brush(QPixmap(":/images/rule/gameRule.png")); pal.setBrush(brush);pal.drawRect(0,0,RULE_WINDOW_WIDTH,RULE_WINDOW_HEIGHT);QWidget::paintEvent(e);
还有一种方式指定绘图设备,就是QPainter的begin函数和end函数
QPainter p;
p.begin(设备指针);
(进行绘图操作)
p.end(设备指针);
end()函数执行后,再进行绘图操作,也不会在设备上绘制了
所以大家一定要记得指定绘图设备哦
关于QPainter无法绘制问题相关推荐
- Qt项目中,用QPainter进行绘制图形时,边角显示不完整问题的梳理
总第42篇 本文主要梳理总结了我自己在项目开发过程中经常遇到的一个问题,就是用QPainter进行图形绘制时,边角显示不完整的现象.这个问题虽然比较简单,但是很容易忘记,每次绘图时都要调试一下,故总结 ...
- 【Qt】2D基本绘图操作——QPainter执行绘制及绘图设备介绍
文章目录 QPainter绘图 绘图设备 QPixmap QImage QPicture Qt实现2D绘图主要基于QPainter.QPaintDevice.QPaintEngine三个类,- - Q ...
- Qt QPainter鼠标绘制线条、矩形、多边形
Qt通过鼠标绘制线条.矩形.多边形本质都是根据鼠标的坐标位移,使用QPainter的自带的函数进行绘制.具体代码如下: graphicspainter.h #ifndef GRAPHICSPAINTE ...
- QPainter QPixmap 绘制圆形图片
一.效果图 二.代码 #include "roungimg.h" #include "ui_roungimg.h" #include <QPainter& ...
- Qt绘制曲线图(基于qt画图QPainter)
在没有QCharst模块时,可以使用QPainter自定义绘制曲线折线图 下面提供完整代码供参考: 直接在qt创建一个QMainWindow类的app的工程,不自动生成ui文件,然后把下面代码复制到m ...
- QPainter绘制一个简易的饼图(含动画和tip显示)
(文本只是一个饼图的雏形,还未进行封装,并且功能也很少,等有空我再进一步完善他.如果你需要的是一个现成的控件或完善的代码,可以在百度上找找其他的.) 先说下我的实现思路:首先,构建Slice结构体类型 ...
- QPainter绘制图片填充方式(正常大小、剪切大小、自适应大小、平铺)
Qt中QPainter提供了绘制图像的API,极大地方便了我们对图像的绘制. Qt中提供了QPixmap, QBitmap,QBitMapQImage,QPicture等图像绘图设备,它们的类关系如下 ...
- Python Qt GUI设计:QPainter、QPen、QBrush和QPixmap窗口绘图类(基础篇—17)
目录 1.QPainter绘图类 2.QPen绘图类 3.QBrush绘图类 4.QPixmap绘图类 本篇博文主要介绍如何实现在窗口中绘图,在 PyQt5中,一般可以通过QPainter.QPen. ...
- 【Qt】2D绘图之绘制简单的图形
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制图形 04. 画笔和画刷 05. 绘制弧线 06. 附录 01. 概述 Qt中提供了强大的2D绘图系统,可以使用同一A ...
最新文章
- 面试必过之消息中间件RabbitMQ面试总结大全!
- Kubuntu 9.10设置支持文件分级的方法
- 用Python找出数组中出现次数超过一半的数
- ASP.NET Web API教程 分页查询
- python socket编程实现的简单tcp迭代server
- 杭电2524 矩形A + B
- windows10常用快捷键
- 怎么看待传菜机器人_比拼食材原料、使用机器人传菜,餐饮业如何把握大消费时代的机遇...
- Linux系统下编译连接C源代码
- 【原创】VBA学习笔记(21) VBA函数,appliacation函数,工作表函数,三种同名函数对比举例(3个例子)
- C在mac上用不了malloc.h头文件的解决方法
- 使用反相器的rc振荡电路
- 计算机关机后,电脑关机后自动重启怎么解决?
- 百度富文本编辑器php设置图片上传,手把手教你百度富文本编辑器的相关配置包括图片上传(for jsp)...
- 关于Diy51单片机的趣事
- 房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文
- x265笔记_1_下载调试
- 查看电脑连接过的所有无线的密码
- 大话php设计模式视频,大话PHP设计模式【1】 – 魔术师之路
- comodo/科摩多安全软件uninstall删除卸载工具
热门文章
- Janino框架初识与使用教程
- 如何画一个精致的思维导图
- 项目管理如何与甲方沟通
- GraphicConverter Mac图片浏览和编辑器
- Pycharm安装与设置
- 以太坊用户体验的痛点
- IP基础知识 —— “一篇盖全”
- 学习MonoRail MVC
- STDERR: error: unable to open preload file “/etc/sysctl.d/90-omnibus-gitlab-net.core.somaxconn.conf“
- Appium报错解决