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

Reply via email to