Qt Painter放大时,event处理应该注意的要点

比如当你Qt中用QPainter进行window和viewport,逻辑和物理坐标分离的形式进行绘图放大的时候,你会发现鼠标的移动和放大之后的图像有点不跟手,比如你是用QTransform进行放大变换,其实这个时候有个小窍门可以比较方便的解决这个 问题就是用反向的QTransform,比如前者进行viewport放大代码是这样QTransform trans = QTransform(zoom, 0, 0, 0, zoom, 0, 0, 0, 1)用来装饰放大物理坐标,那在处理event的时候就可以QTransform trans = QTransform(1 / zoom, 0, 0, 0, 1 / zoom, 0, 0, 0, 1)来反向处理,其中要注意的是当封装点击事件的时候,重载函数有pos和globalPos两个参数,有时候确实需要将globalPos也封装才能得到你的要求,需注意。

时间: 2025-01-01 23:37:47

Qt Painter放大时,event处理应该注意的要点的相关文章

页面放大时,发现导航菜单栏背景没有了,但是菜单文字还在,什么原因?

这个问题苦恼了好久!!!百度查了好久都没好办法! 相传很久很久以前,一位隐世高手练成一门绝技,现被我遇到,碎... 帮我解决了这问题 感谢啊.... 如下,菜单栏的一部分,当按住Ctrl +鼠标 放大时,滑动横向滚动条,最后边的菜单栏就是这德行 ... 在这位隐世高手的帮助下,发现,原来是因为body的width造成这个问题,所以他采取了在body中加入min-width="1300px",之后就好多了 /****************************************

再谈QVector与QByteArray——Qt的写时复制(copy on write)技术

Qt作为一个优秀的跨平台开源C++框架,如果我们只停留在使用它的基础上而不深挖其实现手法,实在是浪费这个知识宝库了~我们在之前的博文QVector的内存分配策略与再谈QVector与std::vector--使用装饰者让std::vector支持连续赋值中简单聊了聊QVector内存分配和赋值方面的一点东西,今天接着从QVector展开谈谈Qt的写时复制技术.老实说,"隐式共享,引用计数,写时复制"也是老调重弹的话题了,不过也是QTL与STL最大的区别之一,这篇博文不详谈"写

qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)

在网上直接下载别人编译好的Qt库,为自己使用省了不少事.但往往也会遇到些问题,其中Qt version is not properly installed,please run make installQt没有被正确安装,请运行make install这个问题是比较常见的一个.网上看了一个帖子,终于明白原因所在,原来是qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径.如果直接拷贝过来使用,自己的路径结构与原来不同,则Qt库就不能正常使用.提示就是Qt version is

Qt窗体关闭时,如何自动销毁窗体类对象

Qt窗体关闭时,如何自动销毁窗体类对象 要对你的窗口设置WA_DeleteOnClose属性,默认的情况下关闭窗口仅仅意味着隐藏它 ImgWindow1->setAttribute(Qt::WA_DeleteOnClose,  true);

Qt 程序退出时断言错误——_BLOCK_TYPE_IS_VALID(pHead->nBlockUse),由setAttribute(Qt::WA_DeleteOnClose)引起

最近在学习QT,自己仿写了一个简单的QT绘图程序,但是在退出时总是报错,断言错误: 报错主要问题在_BLOCK_TYPE_IS_VALID(pHead->nBlockUse),是在关闭窗口时报的错: 先前考虑是析构函数有问题,重写并且排查相关变量并未发现问题. 根据报错问题又推测栈调用出现内存溢出,寻找程序中所有的链表和栈调用.未果. 最后用了最笨的方法,将构造函数中所有变量挨个遍历,最终确定问题出在Qt的setAttribute(Qt::WA_DeleteOnClose)这行代码上. 网上查询

qt painter多个点的曲线

plot.h p,li { white-space: pre-wrap } #ifndef PLOT_H #define PLOT_H #include<QTimer> #include <QWidget> class pathplot : public QWidget { Q_OBJECT public: explicit pathplot(QWidget *parent = nullptr); void paintEvent(QPaintEvent *event); }; #e

vs2019搭配Qt VS Tools时无法生成Generated Files文件夹(过滤器)

记得在使用低版本的vs时是可以生成Generated Files文件夹的,但在使用vs2019配合最新版本(2.4.2)的Qt VS Tools发现无法生成该文件夹,感觉非常奇怪.在网上一通搜索,找到了这篇Qt VS Tools 2.4版本功能改进的说明,https://www.qt.io/blog/2019/08/19/qt-visual-studio-tools-2-4-rc-released.大概就是说更好的与vs进行了集成,我猜测正是因为这个原因导致无法生成Generated Files

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

When compiling Qt you can choose one of these options based on the configure command line: no OpenSSL support (-no-openssl)QtNetwork dynamically opening OpenSSL libs (-openssl; default)QtNetwork linking to OpenSSL (-openssl-linked)The last one means

QT程序发布时的AppCrash问题

至少我碰到了三个情况,都是AppCrash错误(以下都指VS2008的Release的设置) 第1个错误,报错模块是程序自己 我使用VS2008 Team with SP1和QT4.86编译程序,一直在本机上运行没什么问题,编译出的exe文件在别的机子上运行没问题(https发送有问题,但这是另外一回事).后来VS2008 TEAM三个月试用期满,于是卸载掉换成ZWT的VS2008 PRO,打上补丁SP1.奇怪的是使用VS2008 PRO编译出来的程序会报AppCrash错误,程序登录界面都无法