1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| import sys
from PyQt4 import QtCore, QtGui
class QCustomTableWidget (QtGui.QTableWidget):
def __init__ (self, parent = None):
super(QCustomTableWidget, self).__init__(parent)
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QtGui.QTableWidgetItem('cell'))
self.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
def dragEnterEvent (self, eventQDragEnterEvent):
sourceQCustomTableWidget = eventQDragEnterEvent.source()
if isinstance(sourceQCustomTableWidget, QtGui.QTreeWidget) and (self is not sourceQCustomTableWidget):
eventQDragEnterEvent.accept()
else:
QtGui.QTableWidget.dragEnterEvent(self, eventQDragEnterEvent)
def dropEvent (self, eventQDropEvent):
sourceQCustomTableWidget = eventQDropEvent.source()
if isinstance(sourceQCustomTableWidget, QtGui.QTreeWidget) and (self is not sourceQCustomTableWidget):
sourceQTableWidgetItem = sourceQCustomTableWidget.currentIndex()
destinationQTableWidgetItem = str(sourceQTableWidgetItem.data().toString())
##############################################################################
##############################################################################
##############################################################################
self.setItem('???', '???', QtGui.QTableWidgetItem(destinationQTableWidgetItem))
##############################################################################
##############################################################################
##############################################################################
else:
QtGui.QTableWidget.dropEvent(self, eventQDropEvent)
class QCustomQWidget (QtGui.QWidget):
def __init__ (self, parent = None):
super(QCustomQWidget, self).__init__(parent)
self.my1QCustomTableWidget = QCustomTableWidget(self)
self.myQTreeWidget = QtGui.QTreeWidget(self)
self.myQTreeWidget.setDragEnabled(True)
listsExampleQTreeWidgetItem = [QtGui.QTreeWidgetItem([name]) for name in ['A', 'B', 'C']]
self.myQTreeWidget.addTopLevelItems(listsExampleQTreeWidgetItem)
self.allQHBoxLayout = QtGui.QHBoxLayout()
self.allQHBoxLayout.addWidget(self.my1QCustomTableWidget)
self.allQHBoxLayout.addWidget(self.myQTreeWidget)
self.setLayout(self.allQHBoxLayout)
app = QtGui.QApplication(sys.argv)
myQCustomQWidget = QCustomQWidget()
myQCustomQWidget.show()
sys.exit(app.exec_()) |
Partager