gpt4 book ai didi

python - 以编程方式滚动 QGraphicsView

转载 作者:行者123 更新时间:2023-12-04 10:38:50 25 4
gpt4 key购买 nike

我想在我的 (Py)Qt 应用程序中的 QGraphicsView 上实现滚动/平移功能。它应该是这样工作的:用户按下鼠标中键, View 随着用户移动鼠标而滚动(这是一个非常常见的功能)。
我尝试使用从 QWidget 继承的 scroll() 方法。但是,这会以某种方式移动 View - 滚动条和所有内容。见图片。
因此,鉴于这不是我应该这样做的方式,我该怎么办?或者这是正确的方法,但我做错了什么?我使用的代码:

   def __init__(self):
...

self.ui.imageArea.mousePressEvent=self.evImagePress
self.ui.imageArea.mouseMoveEvent=self.evMouseMove

self.scrollOnMove=False
self.scrollOrigin=[]

...

def evImagePress(self, event):
if event.button() == Qt.LeftButton:
self.evImageLeftClick(event)
if event.button() == Qt.MidButton:
self.scrollOnMove=not self.scrollOnMove
if self.scrollOnMove:
self.scrollOrigin=[event.x(), event.y()]
...

def evMouseMove(self, event):
if self.scrollOnMove:
self.ui.imageArea.scroll(event.x()-self.scrollOrigin[0],
event.y()-self.scrollOrigin[1])

它按我的预期工作,除了整个移动小部件业务。

Fails to scroll http://img55.imageshack.us/img55/3222/scrollfail.jpg

最佳答案

我自己没有这样做过,但这是来自 QGraphicsView 文件

... When the scene is larger than the scroll bars' values, you can choose to use translate() to navigate the scene instead.



通过使用 scroll您正在移动小部件, translate 应该实现您正在寻找的内容,移动 QGraphicsScene 的内容在 View 下方

关于python - 以编程方式滚动 QGraphicsView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1108477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com