【问题标题】:PySide Qt: Drag and drop of an imagePySide Qt:拖放图像
【发布时间】:2016-11-19 14:31:09
【问题描述】:

标题基本上说明了一切。我想创建一个可以在窗口内拖动的图像。到目前为止,我的代码完成了所有这些工作,但由于某种原因,图像看起来非常小,尽管我使用了 scaled() 函数来调整它的大小。另外,如果我更改 scaled() 函数中的值,图像就会消失。

from PySide.QtGui import *
from PySide.QtCore import *
import sys


class Label(QLabel):
    def __init__(self, title, parent):
        super(Label, self).__init__(title, parent)
        self.setup()

    def setup(self):
        folder_pic = QPixmap("path")
        folder_size = folder_pic.scaled(64, 64)
        self.label = QLabel(self)
        self.label.setPixmap(folder_size)

    def mouseMoveEvent(self, e):

        if e.buttons() != Qt.LeftButton:
            return

        mimeData = QMimeData(self)

        drag = QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(e.pos() - self.rect().topLeft())

        dropAction = drag.start(Qt.MoveAction)

class Example(QWidget):

    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        self.setAcceptDrops(True)
        self.button = Label("", self)
        self.button.move(100, 65)
        self.setWindowTitle('Click or Move')
        self.setGeometry(300, 300, 280, 150)


    def dragEnterEvent(self, e):

        e.accept()

    def dropEvent(self, e):

        position = e.pos()
        self.button.move(position)
        e.setDropAction(Qt.MoveAction)
        e.accept()



if __name__ == "__main__":
    app = QApplication(sys.argv)
    mywin = Example()
    mywin.show()
    sys.exit(app.exec_())

我的代码基于本教程http://zetcode.com/gui/pysidetutorial/dragdrop/

【问题讨论】:

    标签: python qt drag-and-drop pyside


    【解决方案1】:

    您在拖动对象上设置像素图:

    drag.setPixmap(self.pixmap())
    

    但要使其正常工作,您还需要此修复:

    def setup(self):
        folder_pic = QPixmap("path")
        folder_size = folder_pic.scaled(64, 64)
        self.setPixmap(folder_size)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 2014-10-25
      相关资源
      最近更新 更多