2016年1月16日

对QT多线程以及事件投递的理解

摘要: 1、使用QObject子类的movetothread方法 代替 QThread子类的run 实现多线程。使用原始QThread对象的start方法启动线程==>连接原始QThread对象的started信号到QObject子类的槽(线程部分)。 2、有parent的object是不能moveToThread被移动到其他线程中的,所以还需要把子类对象给setParent(NULL)一下再moveTo... 阅读全文

posted @ 2016-01-16 17:16 cthu 阅读(3874) 评论(0) 推荐(0) 编辑

2016年1月8日

Qt中mouseMoveEvent无效

摘要: 最近用Qt软件界面,需要用到mouseMoveEvent,研究了下,发现些问题,分享一下。 在Qt中要捕捉鼠标移动事件需要重写MouseMoveEvent,但是MouseMoveEvent为了不太耗资源在默认状态下是要鼠标按下才能捕捉到。要想鼠标不按下时的移动也能捕捉到,需要setMouseTracking(true)。 bool mouseTracking 这个属性保存的是窗口部件跟踪鼠标是否... 阅读全文

posted @ 2016-01-08 20:29 cthu 阅读(9947) 评论(0) 推荐(1) 编辑

Qt全局坐标和相对坐标

摘要: QMouseEvent中两类坐标系统,一类是窗口坐标,一类是显示器坐标。 QPoint QMouseEvent::pos() 返回相对这个widget(重载了QMouseEvent的widget)的位置 QPoint QMouseEvent::globalPos() 窗口坐标,这个是返回鼠标的全局坐标 QPoint QCursor::pos() [static] 返回相对显示器... 阅读全文

posted @ 2016-01-08 11:21 cthu 阅读(5205) 评论(0) 推荐(0) 编辑

2016年1月7日

坐标系统

摘要: 坐标系统,也就是QPaintDevice上面的坐标。 将QPainter的逻辑坐标与QPaintDevice的物理坐标进行映射的工作,是由QPainter的变换矩阵(transformation matrix)、视口(viewport)和窗口(window)完成的。 建议是使用QRectF。如果你不得不使用QRect,那么可以利用 x() + width() 和 y() + height() 来替... 阅读全文

posted @ 2016-01-07 20:25 cthu 阅读(1855) 评论(0) 推荐(0) 编辑

qt坐标系统见解

摘要: 窗口坐标为逻辑坐标,是基于视口坐标系的。 视口坐标为物理坐标,是基于绘图设备坐标系的 窗口坐标始终以视口坐标为最终目标进行映射: QPainter::setWindow 修改了窗口位置和大小(左上角重新定义了一个数值和长度) QPainter::setViewport 修改了视口位置和像素个数(左上角移动到相应位置和像素个数) -------------------------------... 阅读全文

posted @ 2016-01-07 19:17 cthu 阅读(3320) 评论(0) 推荐(0) 编辑

2016年1月5日

Qt中QGraphics类坐标映射关系详解

摘要: 1、Item(图元)坐标:属于局部坐标,通常以图元中心为原点(中心对称),非中心对称类,比如dialog类,一般以左上角为原点,正方向x朝右,y朝下。 2、setPos的坐标是父类坐标系的坐标,一般对于item位于scene中的应用场景。 3、scene(场景)坐标:属于逻辑坐标 logical coordinates(与QPainter相同),以场景中心为原点,正方向x朝右,y朝下。 4、图元原... 阅读全文

posted @ 2016-01-05 19:22 cthu 阅读(9091) 评论(0) 推荐(0) 编辑

导航