在PyCharm中运行《AI智能联系人管理》即可进入如图1所示的系统主界面。
说明:在运行程序前,先将当前的计算机连接互联网,并且需要先申请汉王云名片识别接口的服务器Key,并且复制该Key到项目的key.txt文件中替换原来的说明文字即可。
具体的操作步骤如下:
(1)添加联系人。在主界面中,单击“添加”按钮,将打开添加联系人窗口,在该窗口中,单击“选择名片”按钮,选择一张名片对应的图片,系统将自动识别该名片中的信息,并且显示到右侧的文本框中,效果如图2所示。如果没有名片也可手动输入联系人信息。
(2)搜索联系人。在主界面顶部的文本框中,输入要搜索的内容,单击“搜索”按钮,将从已经保存的联系人信息中查找相应的内容,如果找到对应的内容,将显示在下方,如图3所示,否则给出显示“没有搜索内容”的提示对话框,如图4所示。
说明:在查找联系人时,也可以单击索引字母按钮,按拼音索引来查找。
(3)编辑或删除联系人。在显示联系人时,每个联系人的右侧都有两个按钮(如图5所示),一个是“编辑”,另一个是“删除”,单击不同的按钮将实现相应的功能。
(4)查看联系人的分布。在主界面中,单击“查看联系人分布”按钮,将打开“联系人分布”窗口,在该窗口中将以饼图显示联系人的分布,如图6所示。
运行方法
说明:在运行程序前,需要先申请汉王云名片识别接口的服务器Key,并且复制该Key到项目的key.txt文件中替换原来的说明文字即可。
打开PyCharm开发环境,然后在主菜单上选择File→Open菜单项,在打开的Open File or Project对话框中,选择项目business_card,如图1所示。
单击OK按钮,将弹出 Open Project对话框,在该对话框,如果想要在新的窗体中打开项目,则选中Open in new window单选按钮,否则在当前窗体中打开,则选中Open in current window单选按钮。这里在新窗体中打开文件,如图2所示。
打开项目后,在右侧的Project面板中选中程序的主文件card_main.py,并且单击鼠标右键,在弹出的快捷菜单中选择“Run ‘card_main’”菜单项运行项目,如图3所示。
程序运行效果如图4所示。
部分源码如下,其余完整详见下载。
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtGui import * class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(1224, 725) font = QtGui.QFont() font.setFamily("Arial") font.setKerning(False) Form.setFont(font) self.label = QtWidgets.QLabel(Form) self.label.setGeometry(QtCore.QRect(25, 25, 45, 45)) self.label.setCursor(QtGui.QCursor(QtCore.Qt.UpArrowCursor)) # self.label.setStyleSheet("background-color: rgb(10, 46, 255);") self.label.setText("") self.label.setObjectName("label") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.lineEdit = QtWidgets.QLineEdit(Form) self.lineEdit.setGeometry(QtCore.QRect(450, 40, 291, 31)) self.lineEdit.setText("") self.lineEdit.setObjectName("lineEdit") self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setGeometry(QtCore.QRect(680, 40, 61, 31)) self.pushButton.setStyleSheet("color: rgb(255, 255, 255);\n" "background-color: rgb(0, 170, 255);") self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setGeometry(QtCore.QRect(750, 40, 81, 31)) self.pushButton_2.setStyleSheet("background-color: rgb(0, 170, 255);\n" "color: rgb(255, 255, 255);") self.pushButton_2.setObjectName("pushButton_2") self.scrollArea = QtWidgets.QScrollArea(Form) self.scrollArea.setGeometry(QtCore.QRect(10, 140, 1200, 571)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtWidgets.QWidget() self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 1198, 569)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.gridLayoutWidget = QtWidgets.QWidget(self.scrollAreaWidgetContents) self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 1201, 571)) self.gridLayoutWidget.setObjectName("gridLayoutWidget") self.pushButton_29.setObjectName("pushButton_29") self.horizontalLayout.addWidget(self.pushButton_29) self.pushButton_30 = QtWidgets.QPushButton(Form) self.pushButton_30.setGeometry(QtCore.QRect(1100, 40, 91, 31)) self.pushButton_30.setStyleSheet("background-color: rgb(0, 170, 255);\n" "color: rgb(255, 255, 255);") self.pushButton_30.setObjectName("pushButton_30") ————————————————