Hi All.
i'm tring to learn a similar things ... but i can't find a solution yet :-(
i wrote a sample code from where i'm tring to start to learn how to implement a
drag-ndrop action :
import sys
import os
from PyQt4 import QtCore, QtGui
from table_ui import Ui_Form
class Gui(QtGui.QWidget, Ui_Form):
def __init__(self, parent=None):
QtGui.QGroupBox.__init__(self, parent)
self.setupUi(self)
kmldir = '/Users/sasha/kml/'
kmlfiles = self.listkml(kmldir)
numrow = len(kmlfiles)
self.tableWidget.setColumnCount(1)
self.tableWidget.setRowCount(numrow)
self.tableWidget.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
self.connect(self.add, QtCore .SIGNAL("clicked()"),
self.additem)
for i in range(len(kmlfiles)):
item = QtGui.QTableWidgetItem(kmlfiles[i])
self.tableWidget.setItem(i, 0, item)
#####################################
self.tableWidget.setAcceptDrops(True)
self.tableWidget.__class__.dragEnterEvent = self.DragEnterEvent
self.tableWidget.__class__.dropEvent = self.DropEvent
def DragEnterEvent(self, event):
print "DragEnter"
event.acceptProposedAction()
def DropEvent(self, event):
print "DragDrop"
event.acceptProposedAction()
def dragMoveEvent(self, event):
event.acceptProposedAction()
#####################################
def listkml(self,kmldir):
dirList = os.listdir(kmldir)
listakml = []
for fname in dirList:
listakml.append(fname)
return listakml
def additem(self):
row = self.tableWidget.rowCount()
newrow = row + 1
kmldir = '/Users/sasha/kml/'
kmlfiles = self.listkml(kmldir)
item = QtGui.QTableWidgetItem(kmlfiles[1])
self.tableWidget.setRowCount(newrow)
self.tableWidget.setItem(row, 0, item)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
gui = Gui()
gui.show()
sys.exit(app.exec_())
the gui file is asimple widjet with one Qtable ' self.tableWidget '
and one button ' self.add '
what i need is to select an item from the Qtable (it is a path to an existing
file.kml) and drop it inside an external app that accept dropped file.kml
thanks for any help!!!
Massimo.
Il giorno 08/set/2010, alle ore 23.33, Hugo Leveille ha scritto:
> I have looked at the doc but all I could find was drag and drop within the
> pyqt app itself. What id like to do is the, for exemple, attach an url or
> whatever needed to an item so that if I drag the item into my desktop, in a
> explorer window or whatever othe app that support drag drop, it will
> recongnize it
>
> Some if anyone is nice enought to give me a quick exemple or to point me at
> the specific exemple where it is shown, it would be very nice
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt