为了账号安全,请及时绑定邮箱和手机立即绑定

带有鼠标事件平移的 QPaint

带有鼠标事件平移的 QPaint

凤凰求蛊 2021-08-24 17:35:24
我创建了一个绘画小部件,我想用手形图标工具实现一个平移事件,通常在许多软件中都会看到。当用户按下鼠标按钮并按住它然后在 内移动时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_())我感谢任何帮助并提前致谢。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 276 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信