1
버튼을 QTableWidget으로 드래그 앤 드롭하면 버튼이 이전 위치에서 사라지고 버튼을 놓는 셀에는 아무 것도 표시되지 않습니다.QTableWidget - 버튼을 QTableWidget의 셀로 드래그 앤 드롭
누구나 문제를 제안 할 수 있습니까? 당신은 '인쇄 위치가'작동합니까, 테이블에 버튼을 놓으면
코드
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class Button(QtGui.QPushButton):
def __init__(self, title, parent):
super(Button, self).__init__(title, parent)
def mouseMoveEvent(self, e):
if e.buttons() != QtCore.Qt.RightButton:
return
mimeData = QtCore.QMimeData()
drag = QtGui.QDrag(self)
drag.setMimeData(mimeData)
drag.setHotSpot(e.pos() - self.rect().topLeft())
dropAction = drag.start(QtCore.Qt.MoveAction)
def mousePressEvent(self, e):
if e.button() == QtCore.Qt.LeftButton:
print 'Left Button Pressed'
class MyTable(QtGui.QTableWidget):
def __init__(self, rows, columns, butObject, parent):
super(MyTable, self).__init__(rows, columns, parent)
self.setAcceptDrops(True)
self.butObject = butObject
def dragEnterEvent(self, e):
e.accept()
def dropEvent(self, e):
position = e.pos()
print position
self.butObject.move(position)
e.setDropAction(QtCore.Qt.MoveAction)
e.accept()
def dragMoveEvent(self, e):
e.accept()
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.setAcceptDrops(True)
self.button = Button('Button', self)
self.button.move(50, 200)
self.table = MyTable(2, 2, self.button, self)
self.table.setAcceptDrops(True)
self.table.setDragEnabled(True)
self.setWindowTitle('Click or Move')
#self.setGeometry(300, 300, 280, 150)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
app.exec_()
if __name__ == '__main__':
main()
, 그것은 내가 행과 열을 찾을 수있는 방법을 찾고 있었다, 지금 작동 감사 위치 개체에서. 나는 문서를 보았지만 rowAt() 및 columnAt() 메서드를 찾지 못했습니다. 고마워, 내 시간을 구 했어 :) – likeToCode
니스! 도움이된다면 녹색 체크 표시를 누르십시오. 내 포인트를 얻을 필요가있어! :) –