2017-12-03 3 views
1

QPushButton을 끌면 떨어질 때까지 사라집니다. 드래그하는 동안 버튼을 항상 표시하고 싶습니다. 그렇게하는 방법?PyQt5에서 QDrag로 드래그하는 동안 QPushButton을 표시하는 방법은 무엇입니까?

내리막 내 QDrag 개체를 비롯하여 내 단추가 드래그되고 있습니다.

는 더 많은 코드를 공유하는 해피 필요한 경우 :

이미지를 얻기 위해, setPixmap()을 통해 당신이 보여주고 싶은 이미지를 설정해야합니다

class DraggableCodeBlock(QPushButton): 
    def __init__(self, width, height, offset_left, offset_top, parent, command): 

     super().__init__(parent=parent) 

     self.parent = parent 

     self.setText(command) 

     self.show() 

    def mouseMoveEvent(self, e): 

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

     mimeData = QMimeData() 

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

     dropAction = drag.exec_(Qt.MoveAction) 
     super(DraggableCodeBlock, self).mouseMoveEvent(e) 

    def mousePressEvent(self, e): 

     super().mousePressEvent(e) 

     if e.button() == Qt.LeftButton or not(self.is_mobile): 
      print('press') 

답변

1

내 화면의 사진을 당신이 사용해야하는 위젯 grab() :

drag = QDrag(self) 
drag.setPixmap(self.grab()) 
관련 문제