def mousePressEvent(self, event): if self.onForm: self.setStatus(not self.onForm) eventSystem.dispatch("triggerResultPanel") else: self.setStatus(not self.onForm) eventSystem.dispatch("triggerFormPanel")
def stopSearch(self): if self.worker is not None: self.worker.quit() self.worker.wait() self.worker = None self.setSubmitState(WAITING) eventSystem.dispatch("notifyStop")
def clickedSubmit(self): state = self.submitState if state == WAITING: eventSystem.dispatch("triggerFormPanel") elif state == SEARCHING: self.setSubmitState(WAITING) eventSystem.dispatch("stopSearch") self.stopInsertTimer()
def clickedSubmit(self): state = self.submitState if state == WAITING: self.search() elif state == SEARCHING: self.stopSearch() elif state == FILTER: self.filter() eventSystem.dispatch("triggerResultPanel")
def printChildren(self, row): data = self.parent().model.rowData(row) dialog = self.dialog h = 50 * len(data["children"]) + 130 + config('gui.topBorderHeight') dialog.load(data["children"], self.w, h) if dialog.exec_(): # 执行方法,成为模态对话框,用户点击OK后,返回1 eventSystem.dispatch("addChildrenCheckList", row, dialog.getCheckedList())
def _classify(self, rawData): worker = TextClusterThread() worker.initialize(rawData["classifyDirs"], rawData["cluster_n"], ["updatedTime", "accessTime"]) worker.start() worker.finishedTrigger.connect( lambda results: eventSystem.dispatch("finishTextCluster", results)) self.worker = worker eventSystem.dispatch("setTextCluster", rawData["cluster_n"]) return worker
def _classify(self, rawData): worker = ImageClusterThread() worker.initialize(rawData["clusterDir"], int(rawData["cluster_n"])) worker.start() worker.finishedTrigger.connect(lambda results: eventSystem.dispatch("finishImageCluster", results)) self.worker = worker eventSystem.dispatch("setImageCluster", rawData["cluster_n"]) print("classify!") return worker
def search(self): eventSystem.dispatch("triggerResultPanel") workThread = SimilarImageSearchThread() data = self.getForm() workThread.initialize(data["compareObj"], data["searchRoot"], int(data["similarScore"]), int(data["quantity"])) workThread.start() workThread.finishedTrigger.connect( lambda results: eventSystem.dispatch("finishedSimilarImageSearch", results)) self.workThread = workThread
def search(self): searcher = self.getSearcher() worker = SearchThread() worker.initialize(searcher) worker.start() eventSystem.dispatch("startInsert") worker.putResultTrigger.connect( lambda item: eventSystem.dispatch("getPartialResult", item)) worker.finishedTrigger.connect( lambda: eventSystem.dispatch("finishNormalSearch")) self.worker = worker
def classify(self): if self.searching: eventSystem.dispatch("stopTextCluster") self.worker.quit() self.worker.wait() self.reset() else: self.searching = True self.submitButton.setText("停止分类") eventSystem.dispatch("triggerResultPanel") self.worker = self._classify(self.getForm()) self.worker.finishedTrigger.connect(self.reset)
def changeTab(self, tabId): if self.active is not None: print("hide {0}".format(self.active.id)) self.active.hide() w, h = self.size().width(), self.size().height() - config("gui.mainContentTabMarginBottom") self.tabs.setdefault(tabId, self.constructors[tabId](self, QSize(w, h))) current = self.tabs[tabId] current.show() self.active = current print("show {0}".format(tabId)) if tabId in self.idMenuMap: tabId = self.idMenuMap[tabId] eventSystem.dispatch("selectedMenu", tabId)
def _search(self, rawData): worker = RepeatFileSearchThread() worker.initialize(rawData["root"]) worker.start() worker.finishedTrigger.connect(lambda results: eventSystem.dispatch("finishRepeatSearch", results)) self.worker = worker print("search!") return worker
def _classify(self, rawData): root = rawData["classifyDirs"] worker = TextClassifyThread() worker.initialize(root,[rawData["predictDir"]], ["updatedTime","accessTime"]) worker.start() classNames = [] classDirs = [] for item in os.listdir(root): if item[0] == ".": continue p = os.path.join(root, item) if not os.path.isdir(p): continue classNames.append(item) classDirs.append(p) eventSystem.dispatch("setTextClass", classNames, classDirs) worker.finishedTrigger.connect(lambda results: eventSystem.dispatch("finishTextClassify", results)) self.worker = worker print("classify!") return worker
def getBtns(self): searchBtn = getBtn(PRIMARY, "开始搜索", self) normalFileSearchBtn = getBtn(INFO, "一般文件搜索", self) searchBtn.clicked.connect(self.search) normalFileSearchBtn.clicked.connect( lambda: eventSystem.dispatch("changeTab", "normalSearch")) return (searchBtn, normalFileSearchBtn)
def getBtns(self): submitButton = getBtn(PRIMARY, "开始自动分类", self) submitButton.clicked.connect(self.classify) textClassifyBtn = getBtn(INFO, "文本自动归类", self) textClassifyBtn.clicked.connect( lambda: eventSystem.dispatch("changeTab", "textClassify")) imageClassifyBtn = getBtn(INFO, "图像自动分类", self) imageClassifyBtn.clicked.connect( lambda: eventSystem.dispatch("changeTab", "imageClassify")) imageClusterBtn = getBtn(INFO, "图像自动归类", self) imageClusterBtn.clicked.connect( lambda: eventSystem.dispatch("changeTab", "imageCluster")) self.submitButton = submitButton return [ submitButton, textClassifyBtn, imageClassifyBtn, imageClusterBtn ]
def getBtns(self): submitButton = getBtn(PRIMARY, "开始搜索", self) submitButton.clicked.connect(self.clickedSubmit) similarSearchBtn = getBtn(INFO, "相似图片搜索", self) similarSearchBtn.clicked.connect( lambda: eventSystem.dispatch("changeTab", "similarImageSearch")) resetButton = getBtn(DEFAULT, "重置", self) self.submitButton = submitButton return (submitButton, resetButton, similarSearchBtn)
def getBtns(self): similarSearchBtn = getBtn(INFO,"相似图片搜索") similarSearchBtn.clicked.connect(lambda : eventSystem.dispatch("changeTab", "similarImageSearch")) submitBtn = getBtn(PRIMARY, "开始搜索") submitBtn.clicked.connect(self.clickedSubmit) self.submitBtn = submitBtn filterBtn = getBtn(DEFAULT,"在结果中筛选") filterBtn.clicked.connect(self.clickedFilter) return [ submitBtn, filterBtn, similarSearchBtn ]
def clickedFilter(self): eventSystem.dispatch("triggerFormPanel") eventSystem.dispatch("notifyFilter", self.model.files)
def filter(self): search = self.getSearcher() print("lastItem len {0}".format(len(self.lastItems))) eventSystem.dispatch("notifyFilterResult", search.filterItems(self.lastItems))
def getBtns(self): similarSearchBtn = getBtn(INFO, "一般文件搜索") similarSearchBtn.clicked.connect( lambda: eventSystem.dispatch("changeTab", "normalSearch")) return [similarSearchBtn]
def mousePressEvent(self, event): eventSystem.dispatch("changeTab", self.tabId)
def _getBtns(self): submitBtn = getBtn(PRIMARY, "开始搜索") submitBtn.clicked.connect(lambda : eventSystem.dispatch("researchRepeatDetect")) return self.getBtns() + [submitBtn]