PyQt5在小部件之间拖放

时间:2016-06-16 20:20:38

标签: python-3.x drag-and-drop pyqt pyqt5

我目前正在努力实现看似相对简单的事情。拖放找到here就是一个很好的例子。

这是我称之为卡的课程:

class Card(QLabel):
    def __init__(self, png_file):
        super(Card, self).__init__()
        self.pix_map = QPixmap(png_file)
        self.pix_map = self.pix_map.scaled(100, 140)
        self.setPixmap(self.pix_map)

        # self.setDragEnabled(True)

所有这一切都是创建一个QLabel,其中包含一个特定大小的图像,并附有图像。

然后我将这些卡放在以下Card_Holder Widget的两个实例中,如下所示:

class Card_Holder(QWidget):
    def __init__(self):
        QObject.__init__(self)

        # Create Layout
        self.lay = QGridLayout()
        self.setLayout(self.lay)

        # Create Cards
        c1 = Card("Card1.jpg")
        c2 = Card("Card2.jpg")

        # Add Cards
        self.lay.addWidget(c1, 0, 0)
        self.lay.addWidget(c2, 3, 0)

        # Drag and Drop
        self.setAcceptDrops(True)

我想要做的是在每个Card_Holder之间拖动卡片。所以我将setAcceptDrops添加到Card_Holder,就像示例教程一样。

我唯一的问题是将setDragEnabled(True)添加到Card类。这完全是按照上面的教程去掉的。虽然QLineEdit包含拖动功能,但QLabel不包含。

我的问题实际上归结为:

  • 是否有任何可用的QWidgets允许拖动或我是否坚持使用我的产品?

0 个答案:

没有答案