我只是想知道,是否有可能在QCanvas上拖点。我想在画布上绘制随机点,例如,我希望每个点都可以在画布中随处可拖动。
答案 0 :(得分:0)
我刚刚进入pyqt虽然我已经使用wxPython和WPF做了一些基于画布的GUI开发,所以我可以给你整体方法但不是pyqt的细节。
你应该能够
你可能应该指出,当鼠标在一个点附近盘旋时,可以通过在该点周围画一个圆圈来抓住一个点;然后当你拖动这个点时,你实际上用中间的点拖动那个圆圈,这样很容易看到点在哪里。
您也应该按ESC键按下:如果用户在移动过程中按下ESC,该点将返回到它开始的位置并且操作被中止。
对于pyqt,请看How to draw a line with animation in PyQt4:它在从QWidget派生的类中使用QPainter,这似乎是常见模式,但也有QGraphicsView可以提供更高级别的API。 QCanvas类似乎很老,似乎需要QCanvasView,您的代码可以从中捕获鼠标事件。