打造一个window桌面应用:在线聊天对话机器人
![](https://img.haomeiwen.com/i24484708/28370c357dce3921.jpg)
大家好,我是辰哥~~~
本文目标:打造一个window桌面应用:在线聊天对话机器人。
今天辰哥教大家做一个在线聊天对话机器人桌面应用,已经打包成exe可执行文件,读者可以直接拿来使用, 先上演示图
![](https://img.haomeiwen.com/i24484708/c34bc5ef7fe2c745.gif)
聊天客户端桌面应用
设计Ui:Pyqt5
对话回答:图灵机器人
打包EXE:Pyinstaller
本文通过界面设计、后端处理、效果演示、打包exe这四方面去进行讲解。
打包好EXE下载地址:https://wwi.lanzoui.com/iCygNrp0c6f
01、界面设计
1.安装pyqt5
1.安装PyQt5工具
pip install PyQt5
2.安装Qt Designer图形界面开发工具
pip install PyQt5-tools
2.设计界面
在搜索框中搜索: Desginer
![](https://img.haomeiwen.com/i24484708/71968b7178b1c334.png)
创建桌面应用
![](https://img.haomeiwen.com/i24484708/e65656ee5a2783b6.png)
开始设计,其中左边是控件、中间是设计结果、右边控件属性设置。
![](https://img.haomeiwen.com/i24484708/207ec8b5d5c659c2.png)
最终的设计结果如下:(辰哥的简单设计)
![](https://img.haomeiwen.com/i24484708/25bbcdaba68a6d4e.png)
保存为ui的后缀,如:chenge.ui
![](https://img.haomeiwen.com/i24484708/5d0f812744cb1d20.png)
3.ul界面转为python代码
通过Desginer设计的保存的ul文件可以直接转为python代码,其命令如下:
pyuic5 -o chenge.py chenge.ui
![](https://img.haomeiwen.com/i24484708/06e24b1b834214f7.png)
预览代码
![](https://img.haomeiwen.com/i24484708/245296cc62120345.png)
02、、后端处理
1.启动界面
提示:这个chenge.py文件是无法执行运行,我们需要新建一个主函数去调用chenge.py
辰哥这里新建了一个py文件:main.py
![](https://img.haomeiwen.com/i24484708/a7a4c0f1021c4bcc.png)
编辑main.py
import sys
import chenge # GUI文件的名称,chenge.ui
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = chenge.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
运行结果:
![](https://img.haomeiwen.com/i24484708/11f229831df5ff87.png)
这时候的界面点击和输入是无反应,只能看不能用!下面开始进行编写控件处理逻辑。
2.接入图灵机器人
在main.py文件中新建一个chat函数方法:通过调用chat函数,传入问题,返回解答
![](https://img.haomeiwen.com/i24484708/a57ce403d72abb39.png)
3.控件处理逻辑
绑定监听事件
1、输入框
2、展示框
3、按钮(发送)
在chenge.py文件中
![](https://img.haomeiwen.com/i24484708/15042d18280d5234.png)
#绑定监听事件
self.pushButton.clicked.connect(MainWindow.pushButton)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
MainWindow.setTabOrder(self.history, self.pushButton)
MainWindow.setTabOrder(self.textEdit, self.pushButton)
逻辑:
1.获取输入框
2.调用chat(图灵机器人)
3.添加到历史中
4.清空输入框
def pushButton(self):
#提问
q_text = self.ui.textEdit.toPlainText()
#清空输入框
self.ui.textEdit.clear()
#调用图灵机器人
a_text = self.chat(q_text)
a_text = "【机器人】:"+a_text
## 记录到聊天记录中
history = self.ui.history.toPlainText()
history = history+"\n"+"【我】:"+q_text+"\n"+a_text
self.ui.history.setText(history)
03 效果演示
动图:
![](https://img.haomeiwen.com/i24484708/1a7ba4eb9e9e8e6f.gif)
最终图:
![](https://img.haomeiwen.com/i24484708/bae82b60cceb80ea.png)
04、打包exe
将python文件打包成一个exe可执行文件
通过命令:
pyinstaller -F -w main.py
![](https://img.haomeiwen.com/i24484708/47a72181352f6bcd.png)
经过辰哥的测试,打包好的exe文件可以在任何一台电脑上执行,并且不赖主机的python环境
![](https://img.haomeiwen.com/i24484708/0a966ab9b2d786ef.gif)
由于辰哥技术有限,里面带有图片打包出错,因此这里辰哥先把图片去掉了,后面再考虑如何带图片的打包
打包好EXE下载地址:https://wwi.lanzoui.com/iCygNrp0c6f
05、小结
本文目标:打造一个window桌面应用:在线聊天对话机器人。从界面设计,到处理后端对话,最后打包成exe。
不会的小伙伴,感觉动手练习!!!!最后说一声:原创不易,求给个赞!