相关疑难解决方法(0)

Tkinter画布缩放+移动/平移

Tkinter的canvas小部件具有内置功能:

  • 移动/与平移画布(例如用点击+拖拽)canvas.scan_markcanvas.scan_dragto,看到这个问题

  • 缩放画布上的矢量元素canvas.scale,但遗憾的是,这不适用于画布上的位图图像

幸运的是,此方法允许缩放图像(通过手动重绘图像的缩放部分).但:

  1. 当我们重新绘制画布的特定部分时,移动/平移功能将不再起作用...

  2. 我们绝对需要渲染超过当前显示的区域,以允许移动/平移.假设我们在画布上有1000x1000位图,我们想要缩放50倍...如何避免在内存中有50.000 x 50.000像素的位图?(RAM中2.5千兆像素太大).我们可以考虑仅渲染视口,或者比当前视口稍微多一点以允许平移,但是一旦平移导致渲染区域的边缘怎么办?

如何在Tkinter画布上使用移动/平移+缩放功能,适用于图像?

python canvas tkinter tkinter-canvas

15
推荐指数
2
解决办法
9488
查看次数

如何在 PySide2 中使用 QLabel 加载图像

我是编码和 python 的初学者。我读到 tkinter 有点“基础”,如果你想开发一个有点复杂的应用程序,而 PyQt 在许可方面有问题。这就是为什么我选择PySide2来开发这种项目,但发现目前文档相对较少。这是正确的选择吗?

我目前的编码问题如下:我试图用 PySide2 加载图像但没有成功。这是我2次尝试的代码:

尝试 N°1:

import sys
import PySide2
from PySide2.QtWidgets import QApplication, QLabel

app = QApplication(sys.argv)
img = PySide2.QtGui.QImage("/Users/mymac/Downloads/ecg_measure.png")
pixmap=PySide2.QtGui.QPixmap(img)
label = PySide2.QtWidgets.QLabel.setPixmap(pixmap)
label.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

Traceback (most recent call last):

File "<ipython-input-1-86961df4959d>", line 8, in <module>
label = PySide2.QtWidgets.QLabel.setPixmap(pixmap)

TypeError: descriptor 'setPixmap' requires a 'PySide2.QtWidgets.QLabel' object but received a 'PySide2.QtGui.QPixmap'
Run Code Online (Sandbox Code Playgroud)

使用回溯中的信息,我尝试了以下尝试 N°2:

import sys
import PySide2
from PySide2.QtWidgets import QApplication, QLabel

app = QApplication(sys.argv)
img = PySide2.QtGui.QImage("/Users/mymac/Downloads/ecg_measure.png")
pixmap=PySide2.QtGui.QPixmap(img) …
Run Code Online (Sandbox Code Playgroud)

image qpixmap python-3.x qlabel pyside2

3
推荐指数
1
解决办法
8459
查看次数