我创建了一个绘画小部件,我想用手形图标工具实现一个平移事件,通常在许多软件中都会看到。当用户按下鼠标按钮并按住它然后在 内移动时Qpainter canvas,绘图跟随鼠标移动。我不知道如何在 PyQt5 中做到这一点。视觉示例当前画面:所需的屏幕事件:代码:import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsclass Foo(QtWidgets.QWidget): def __init__(self, parent=None): super(Foo, self).__init__(parent) self.setGeometry(QtCore.QRect(200, 100, 1200, 600)) self.paint = Paint() self.sizeHint() self.lay = QtWidgets.QVBoxLayout() self.lay.addWidget(self.paint) self.setLayout(self.lay)class Paint(QtWidgets.QWidget): def __init__(self, parent=None): super(Paint, self).__init__(parent) self.setBackgroundRole(QtGui.QPalette.Base) self.setAutoFillBackground(True) self._width = 350 self._height = 250 def paintEvent(self, event): painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setBrush(QtGui.QBrush( QtCore.Qt.cyan)) painter.setPen(QtCore.Qt.darkCyan) r = QtCore.QRect(QtCore.QPoint(), QtCore.QSize(self._width, self._height)) r.moveCenter(self.rect().center()) painter.drawRect(r)if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) w = Foo() w.show() sys.exit(app.exec_())我感谢任何帮助并提前致谢。
添加回答
举报
0/150
提交
取消