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也封裝才能得到你的要求,需注意。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章