PyQt图片拖拽与缩放与Qlabel的结合
这是博主最近用PyQt设计软件界面的时候遇到的一个小问题,软件主要功能是对图片进行绘制等操作,图片的显示载体是Label,但是做到缩放和拖拽功能时,发现label控件无法实现该功能。
走了一些弯路,最后实现该功能
效果如下:
代码
图片缩放通过toolbutton事件实现
- toolbutton函数
def toolButton_magn_click(self):
global num,image_Reflesh
if num<5:
num=num+0.5
n_QIm = QIm.scaled(max_x * num, max_y * num, Qt.KeepAspectRatio, Qt.SmoothTransformation)
self.label_image.setPixmap(QPixmap.fromImage(n_QIm))
label所在的类与之后实现拖拽的widget类不是同一个类
由于label的刷写图像没办法指定刷写的位置,所以还是得靠新建一个widget,然后重写paintEvent
- widget的_init_函数:
class ImageWithMouseControl(QWidget):
def __init__(self, parent=None)