自定義的QGraphicsScene中,重寫了其wheelEvent事件,來實作場景中所有ITEM(有線條,文字)的縮放
內部是重新繪制的ITEM,并重新設定了場景的setSceneRect.
但在運行時,發現縮放操作時,會觸發QGraphicsView的滾動條,導致滾動條上下左右移動,而引起整個場景的XY位置變化。即使把滾動條隱藏或關閉,依然有這樣的情況發生。
如何避免這個問題呢?
uj5u.com熱心網友回復:
graphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
graphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
uj5u.com熱心網友回復:
這只能關閉滾動條, 但是不能阻止場景的滾輪事件
uj5u.com熱心網友回復:
阻止滾輪事件
可以重寫滾輪事件函式
uj5u.com熱心網友回復:
graphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
graphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
這只能關閉滾動條, 但是不能阻止場景的滾輪事件
阻止滾輪事件
可以重寫滾輪事件函式
可以設定阻止信號發生
GraphicsView->horizontalScrollBar()->blockSignals(true);
GraphicsView->verticalScrollBar()->blockSignals(true);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/129139.html
標籤:Qt
