97 lines
3.1 KiB
Python
Executable File
97 lines
3.1 KiB
Python
Executable File
import sys
|
|
from PyQt5 import QtWidgets, QtGui
|
|
from PyQt5.QtWidgets import *
|
|
from process import search
|
|
|
|
|
|
class ui(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.path_pic = None
|
|
self.text = None
|
|
self.path_word = None
|
|
self.submit = None
|
|
self.pic_path = None
|
|
self.doc_path = None
|
|
self.btnPic = None
|
|
self.btnWord = None
|
|
self.initUI()
|
|
|
|
def initUI(self):
|
|
# 新建表格布局
|
|
grid = QGridLayout()
|
|
grid.setSpacing(50)
|
|
# 新建标题
|
|
title = QLabel("欢迎使用A文档搜图")
|
|
grid.addWidget(title, 0, 1, 1, 2)
|
|
# 新建按钮
|
|
self.btnWord = QPushButton('选择 Word 文件', self)
|
|
self.btnWord.setToolTip("Import your word here.")
|
|
|
|
self.btnPic = QPushButton('选择要搜索的图片', self)
|
|
self.btnPic.setToolTip("Import your pic here.")
|
|
# 新建路径便签
|
|
self.doc_path = QLabel("请选择文件")
|
|
self.pic_path = QLabel("请选择文件")
|
|
|
|
self.submit = QPushButton('开始检索', self)
|
|
grid.addWidget(self.btnWord, 1, 0, 1, 1)
|
|
grid.addWidget(self.btnPic, 2, 0, 1, 1)
|
|
grid.addWidget(self.doc_path, 1, 1, 1, 3)
|
|
grid.addWidget(self.pic_path, 2, 1, 1, 3)
|
|
grid.addWidget(self.submit, 3, 1, 1, 2)
|
|
|
|
self.submit.clicked.connect(self.process)
|
|
self.btnWord.clicked.connect(self.get_word)
|
|
self.btnPic.clicked.connect(self.get_pic)
|
|
self.setLayout(grid)
|
|
self.resize(500, 200)
|
|
self.setWindowTitle('欢迎使用 A 文档搜图')
|
|
self.setImage()
|
|
self.center()
|
|
self.show()
|
|
|
|
def setImage(self):
|
|
bg = QtGui.QImage()
|
|
bg.load(r'./图片1.jpeg')
|
|
pa = QtGui.QPalette()
|
|
pa.setBrush(self.backgroundRole(), QtGui.QBrush(bg))
|
|
self.setPalette(pa)
|
|
self.setAutoFillBackground(True)
|
|
|
|
def closeEvent(self, event):
|
|
reply = QMessageBox.question(self, '退出', "确认退出吗?", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
|
|
if reply == QMessageBox.Yes:
|
|
event.accept()
|
|
else:
|
|
event.ignore()
|
|
|
|
def get_word(self):
|
|
self.path_word = str(QtWidgets.QFileDialog.getOpenFileUrl(self, "选择文件")[0]).split("'")[-2][7:]
|
|
print(self.path_word)
|
|
self.doc_path.setText(self.path_word)
|
|
|
|
def get_pic(self):
|
|
self.path_pic = str(QtWidgets.QFileDialog.getOpenFileUrl(self, "选择文件")[0]).split("'")[-2][7:]
|
|
self.pic_path.setText(self.path_pic)
|
|
|
|
def process(self):
|
|
self.text = "已搜索到结果,该图片上下文为:\n"
|
|
self.text += search(self.path_word, self.path_pic)
|
|
QMessageBox.question(self, '结果', self.text, QMessageBox.Yes, QMessageBox.Yes)
|
|
|
|
def center(self):
|
|
# 获得窗口
|
|
qr = self.frameGeometry()
|
|
# 获得屏幕中心点
|
|
cp = QDesktopWidget().availableGeometry().center()
|
|
# 显示到屏幕中心
|
|
qr.moveCenter(cp)
|
|
self.move(qr.topLeft())
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app = QApplication(sys.argv)
|
|
ui = ui()
|
|
sys.exit(app.exec_())
|