3

PyQt4 でドラッグ中にマウスポインター/カーソルを変更するにはどうすればよいですか (ウィジェットの左側にマウスポインターを 1 つ、右側に別のポインターを置きたい):

from PyQt4 import QtGui, QtCore
class Button(QtGui.QPushButton):

    def mousePressEvent(self, event):
        mimedata = QtCore.QMimeData()
        self.drag = QtGui.QDrag(self)
        self.drag.setMimeData(mimedata)
        self.drag.start(QtCore.Qt.CopyAction)


class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()
        self.setAcceptDrops(True)
        self.button = Button("Drag me", self)
        self.setGeometry(300, 300, 300, 150)

    def dragEnterEvent(self, e):
        e.accept()

    def dragMoveEvent(self, e):
        pm = QtGui.QPixmap(32,32)

        if e.pos().x()<150:
            pm.fill(QtCore.Qt.blue)    
            self.button.drag.setDragCursor(pm,QtCore.Qt.CopyAction) #Not working
        else:
            pm.fill(QtCore.Qt.red)    
            self.button.drag.setDragCursor(pm,QtCore.Qt.MoveAction) #Not working

app = QtGui.QApplication([])
ex = Example()
ex.show()
app.exec_()  

ただし、このコードはマウス カーソルを変更しません。

前もって感謝します マッツ

4

0 に答える 0