比如當你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也封裝才能得到你的要求,需注意。
Qt Painter放大時,event處理應該注意的要點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Display progress bar as copying one file
bezstudio
2019-02-23 14:01:15
Qt學習之路(37): Qt容器類之關聯存儲容器
yuzeshsh
2019-02-23 00:01:33
Qt學習之路(46): 自定義model之二
yuzeshsh
2019-02-23 00:00:45
ubuntu mysql與qt的連接
lxj901110
2019-02-22 22:34:51
qtopia移植筆記
lobbve223
2019-02-22 21:52:42
Qt靜態編譯總結
weimingtom
2019-02-22 21:34:54
詳解Ubuntu10.10下Qt連接Mysql數據庫
fengyuren123
2019-02-22 20:40:37
打開Qt creator,提示無法覆蓋文件
fengyuren123
2019-02-22 20:40:36
qt中如何設置makefile中的編譯參數(qt中添加gdb調試的條件)
sysq2012cto
2019-02-22 17:15:25
QT表格選擇類型爲行,表格只讀不可以編輯
知識小屋
2019-02-22 17:09:51
QT編譯支持Firebird數據庫
cuzn1024
2019-02-22 16:36:33
關於apktool和jd-gui工具的使用
guozhendan
2019-02-22 21:03:30
fedora用root登陸gui
superslh
2019-02-22 20:34:26