在PyQ的列表视图中创建可拖动图标

2024-04-26 11:52:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个PyQt程序,在这个程序中,我希望能够在某种“工具栏”中拥有一些对象,比如形状。我希望用户能够单击并拖动这些形状之一的实例从工具栏到主画布(QGraphicsView)。在

对于工具栏,我考虑使用QListView,可以使用QAbstractListModel填充它。但是,我不确定如何使QListView只包含我想要的形状的图标。。。第二,如何让对象图标拖到我的主画布上。有什么想法吗?在


Tags: 对象实例用户程序画布pyqt图标工具栏
1条回答
网友
1楼 · 发布于 2024-04-26 11:52:03

如果这个问题包含一些特定的代码示例和现有的方向,我可以更具体地评论,但这里只是一些一般性的要点:

  • 您的QListView数据不需要专门与拖放问题相关,因此您可以根据需要填充它:QListWidget、QListView+model等等
  • 重要的方面是在QListX小部件上设置拖动方法,以便在QDrag中设置适当的QMimeData。这是将数据传输到放置站点的重要部分。你可以让它发送一个图像,或者一些对某些数据的引用,接收器可以利用这些数据。在
  • 在图形视图上设置一个drop事件以接收和检查mime类型。假设您只是发送一个图像。您可以接收它并将pixmap项目添加到场景中。或者你正在发送一些内部引用,比如一个id到一个字典。它可以被查找,并且可以将数据以所需的形式添加到场景中。在

请参阅Qt Drag and Drop docs。它们几乎就是你想要的。在

相关问题 更多 >