我目前正在努力实现看似相对简单的事情。拖放找到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
不包含。
我的问题实际上归结为: