def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.thread = Worker() self.ui = Ui_dupfind() self.ui.setupUi(self) self.ui.treeWidget_dup.setSortingEnabled(True) # here we connect signals with our slots QtCore.QObject.connect(self.ui.pushButton_browse, QtCore.SIGNAL("clicked()"), self.file_dialog) QtCore.QObject.connect(self.ui.pushButton_scan, QtCore.SIGNAL("clicked()"), self.do_scan) QtCore.QObject.connect(self.ui.treeWidget_dup, QtCore.SIGNAL("itemClicked(QTreeWidgetItem *,int)"), self.dupItem_click) QtCore.QObject.connect(self.thread, SIGNAL("addItem_dup(QString)"), self.addItem_dup) QtCore.QObject.connect(self.thread, SIGNAL("statMsg(QString)"), self.statMsg) QtCore.QObject.connect(self.ui.actionAbout, QtCore.SIGNAL("triggered()"), self.aboutMe)
class StartQt4(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.thread = Worker() self.ui = Ui_dupfind() self.ui.setupUi(self) self.ui.treeWidget_dup.setSortingEnabled(True) # here we connect signals with our slots QtCore.QObject.connect(self.ui.pushButton_browse, QtCore.SIGNAL("clicked()"), self.file_dialog) QtCore.QObject.connect(self.ui.pushButton_scan, QtCore.SIGNAL("clicked()"), self.do_scan) QtCore.QObject.connect(self.ui.treeWidget_dup, QtCore.SIGNAL("itemClicked(QTreeWidgetItem *,int)"), self.dupItem_click) QtCore.QObject.connect(self.thread, SIGNAL("addItem_dup(QString)"), self.addItem_dup) QtCore.QObject.connect(self.thread, SIGNAL("statMsg(QString)"), self.statMsg) QtCore.QObject.connect(self.ui.actionAbout, QtCore.SIGNAL("triggered()"), self.aboutMe) def file_dialog(self): fd = QtGui.QFileDialog(self) fd.setFileMode(QtGui.QFileDialog.Directory) fd.setOption(QtGui.QFileDialog.ShowDirsOnly) d = fd.getExistingDirectory() self.ui.lineEdit_dir.setText(d) def do_scan(self): #clear everything sDict.clear hDict.clear rMap.clear self.ui.treeWidget_dup.clear() self.thread.scan(str(self.ui.lineEdit_dir.text())) def dupItem_click(self, item): self.ui.listWidget_all.clear() h = rMap[str(item.text(0))] for dup in hDict[h]: QtGui.QListWidgetItem(dup, self.ui.listWidget_all) def addItem_dup(self, string): fstat = os.stat(str(string)) item = QtGui.QTreeWidgetItem() #file name item.setText(0, string) #file size fsize = fstat.st_size if fsize > 2 ** 30: item.setText(1, str(fsize/2**30) + " GiB") elif fsize > 2 ** 20: item.setText(1, str(fsize/2**20) + " MiB") elif fsize > 2 ** 10: item.setText(1, str(fsize/2**10) + " KiB") else: item.setText(1, str(fsize) + " Bytes") #mtime item.setText(2, str(datetime.fromtimestamp(fstat.st_mtime))) #ctime item.setText(3, str(datetime.fromtimestamp(fstat.st_ctime))) #atime item.setText(4, str(datetime.fromtimestamp(fstat.st_atime))) self.ui.treeWidget_dup.addTopLevelItem(item) iLst.append(item) def statMsg(self, string): #self.ui.statusbar.clearMessage() self.ui.statusbar.showMessage(string) def aboutMe(self): msg = QtGui.QMessageBox(); msg.setText("DupFind version " + str(VERSION) + "\n\n:-)") msg.exec_()