随笔分类 - GUI
摘要:在绘图的时候,很多时候编写的代码需要根据当前窗口自身的size来进行绘制,这个时候可以添加一个额外的中间rect来做过度,这样以后的绘图机制不会 随着size的变化而不断变化。你的处理逻辑可以保持不变,结合Qt的setWindow和setViewport你可以很轻松的做到两者的分离,这样对 vie...
阅读全文
摘要:有时候有这样的需求,比如想对全局光标进行一次setPos(),但这个时候又不想触发消息队列触发mouseMoveEvent,这个时候就可以这么做。myWidget->clearFocus(); QCursor::setPos(pos); myWidget->setFocus(); 这样在取消窗口...
阅读全文
摘要:在Qt中常常要自己重载一些paintEvent函数,这个时候往往忽略了两个很关键的API,那就是setViewport和setWindow。 Viewport,顾名思义,反应的是物理坐标,就是你实际想在当前坐标系下哪块区域画图,比如(50,50,100,100)的一个rect. Window而是逻...
阅读全文
摘要:比如当你Qt中用QPainter进行window和viewport,逻辑和物理坐标分离的形式进行绘图放大的时候,你会发现鼠标的移动和放大之后的图像有点不跟手,比如你是用QTransform进行放大变换,其实这个时候有个小窍门可以比较方便的解决这个 问题就是用反向的QTransform,比如前者进行v...
阅读全文
摘要:平时不接触绘图,似乎感觉不到浮点和整形所带来的区别,这次项目中意外的碰到了浮点与整形进行迁移的工作。因此写点心得,让自己以后也可以看看。 用浮点作图有个最大的弊端就是边界情况,比如你需要在点(20,20)的地方画一根直线,但由于是浮点,此时你不一定真的能到(20,20),你可能在横坐标或者纵坐标下...
阅读全文
摘要:因为平常在Qt开发过程中经常会与一些简单的2D几何图形打交道,因此学习和掌握一些基本的2D几何计算还是很有必要的,在这里罗列一些常用的基本情况,之后会适时补充。[1] 两点之间距离,根据两个点的差值算出对应的向量,然后算出这个向量的斜边开放即这两点的距离。qreal distance(const ...
阅读全文
摘要:有时候需要在widget中重新setParent,但会发现setParent有时候会出现问题,比如子窗口不在刷出来等等。 其实,有一点是需要注意的,就是Qt文档里说的,如果你当前widget重新设置了parent之后,默认是invisible的。其实这个说话有点问题,因为有两种情况。 第一种情况就...
阅读全文
摘要:在没有状态机的情况下,可以完全仿照客户的使用习惯进行UI线程上的模拟,比如click(), drag(), drop()等等,这样可以不用写另外的函数,而只需要直接拿来 一些现成的UI表现来进行模拟。 但如果你的项目的全局状态下由状态机驱动的时候,这个时候就要注意了,如果你模拟UI的动作可能会出...
阅读全文
摘要:在Qt中常常要自己重载一些paintEvent函数,这个时候往往忽略了两个很关键的API,那就是setViewport和setWindow。 Viewport,顾名思义,反应的是物理坐标,就是你实际想在当前坐标系下哪块区域画图,比如(50,50,100,100)的一个rect. Window而是逻...
阅读全文

浙公网安备 33010602011771号