關於QGraphicsView中的物件移動問題. z
轉自:http://blog.chinaunix.net/uid-2384984-id-2183162.html
個人在看qwt 中的svgmap樣例時,放大縮小的位置的原始碼查到在哪裡出現,但關於移動卻找了一陣,不知道它的原始碼在哪裡出現,從跟蹤情況來看,在void QwtMagnifier::widgetMouseMoveEvent( QMouseEvent *mouseEvent )中沒有執行(或效果)。
後來檢視了QT自帶樣例:imageviewer,感覺與Scroll相關,由於需要顯示,與View相關,暫時就不看GraphicsScence了.
在void QGraphicsView::mouseMoveEvent(QMouseEvent *event)中,經跟蹤發現與下面帶碼有關:
if (d->dragMode == QGraphicsView::ScrollHandDrag) {
if (d->handScrolling) {
QScrollBar *hBar = horizontalScrollBar();
QScrollBar *vBar = verticalScrollBar();
QPoint delta = event->pos() - d->lastMouseEvent.pos();
hBar->setValue(hBar->value() + (isRightToLeft() ? delta.x() : -delta.x()));
vBar->setValue(vBar->value() - delta.y());
// Detect how much we've scrolled to disambiguate scrolling from
// clicking.
++d->handScrollMotions;
}
}
d->mouseMoveEventHandler(event);
}
在紅色程式碼處下斷點,用Mouse拖動GraphicsView中的內容時,會在紅色斷下來,然後把游標移到藍色處,跳過與QScrollBar相關的程式碼,看看GraphicsView中的顯示的內容位置變化了嗎?沒有,應該還保留在原來的位置。QScrollBar或其相關類如何控制與它關聯的類的位置,細節還要看Scroll相關的程式碼,這裡只是拋磚引玉提示一下。
相關文章
- [緊急求救]關於動態建立物件的問題物件
- 關於物件持久化的問題物件持久化
- 關於單機遊戲製作中的物件重用問題(轉)遊戲物件
- 關於物件顆粒大小的問題。物件
- 關於 Laravel 遷移遇到的問題Laravel
- 關於值物件的驗證的問題物件
- [討論]關於一個設計方面的問題――主動物件和被動物件中的方法定義物件
- 關於實體與值物件的問題物件
- 關於物件繼承的問題——利用空物件做中介物件繼承
- 關於移動臨時表空間檔案位置的問題
- 關於移動端小圖示模糊問題的解決方法教程
- 對於物件的動態建立例項問題物件
- 關於工作中遇到的問題
- 關於cuda中的函式問題函式
- 關於 iOS 10 中 ATS 的問題iOS
- 關於struts中html:errors/的問題HTMLError
- 關於移動路由器的一問一答路由器
- Word中移動物件方法物件
- 請教一個關於EJB建立物件時的問題物件
- 關於 mysql 中的 rand () 查詢問題MySql
- 關於 Laravel 中 Ajax 問題的小結Laravel
- 關於iOS10中ATS的問題iOS
- java中關於Map的九大問題Java
- 關於考勤模組中設計的問題
- 關於jsp中轉發的問題JS
- 請教關於工廠模式中建立物件需要不同引數的問題模式物件
- 關於物件導向的方法並行執行的問題物件並行
- 急問:關於servlet中得session問題ServletSession
- DW中AP DIV定位的問題【Z】
- 【轉載】關於C#中動態載入AppDomain的問題C#APPAI
- 關於內嵌物件(Embedded Object)快取設計的問題物件Object快取
- 問一個動態物件的問題物件
- [原創]關於Java String物件建立問題解惑Java物件
- 後IDFA時代,關於移動增長與變現的幾個核心問題
- 關於事件物件中的stopImmediatePropagation事件物件
- Elasticsearch中關於transform的一個問題分析ElasticsearchORM
- 關於頁面中彈窗的定位問題
- 關於mysql中limit最佳化的問題MySqlMIT