大家好,我是辰哥~~~

本文目标:打造一个window桌面应用:在线聊天对话机器人。

今天辰哥教大家做一个在线聊天对话机器人桌面应用,已经打包成exe可执行文件,读者可以直接拿来使用, 先上演示图

聊天客户端桌面应用

设计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

创建桌面应用

开始设计,其中左边是控件、中间是设计结果、右边控件属性设置。

最终的设计结果如下:(辰哥的简单设计)

保存为ui的后缀,如:chenge.ui

3.ul界面转为python代码

通过Desginer设计的保存的ul文件可以直接转为python代码,其命令如下:

pyuic5 -o chenge.py chenge.ui

预览代码

02、、后端处理

1.启动界面

提示:这个chenge.py文件是无法执行运行,我们需要新建一个主函数去调用chenge.py

辰哥这里新建了一个py文件:main.py

编辑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_())

运行结果:

这时候的界面点击和输入是无反应,只能看不能用!下面开始进行编写控件处理逻辑。

2.接入图灵机器人

在main.py文件中新建一个chat函数方法:通过调用chat函数,传入问题,返回解答

3.控件处理逻辑

绑定监听事件

1、输入框

2、展示框

3、按钮(发送)

在chenge.py文件中

#绑定监听事件
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 效果演示

动图:

最终图:

04、打包exe

将python文件打包成一个exe可执行文件

通过命令:

pyinstaller -F -w main.py

经过辰哥的测试,打包好的exe文件可以在任何一台电脑上执行,并且不赖主机的python环境

由于辰哥技术有限,里面带有图片打包出错,因此这里辰哥先把图片去掉了,后面再考虑如何带图片的打包

打包好EXE下载地址:https://wwi.lanzoui.com/iCygNrp0c6f

05、小结

本文目标:打造一个window桌面应用:在线聊天对话机器人。从界面设计,到处理后端对话,最后打包成exe。

不会的小伙伴,感觉动手练习!!!!最后说一声:原创不易,求给个赞!

打造一个window桌面应用:在线聊天对话机器人的更多相关文章

  1. 【前端新手也能做大项目】:跟我一起,从零打造一个属于自己的在线Visio项目实战【ReactJS + UmiJS + DvaJS】(二)

    本系列教程是教大家如何根据开源js绘图库,打造一个属于自己的在线绘图软件.当然,也可以看着是这个绘图库的开发教程.如果你觉得好,欢迎点个赞,让我们更有动力去做好! 本系列教程重点介绍如何开发自己的绘图 ...

  2. Netty+MUI从零打造一个仿微信的高性能聊天项目,兼容iPhone/iPad/安卓

    要说到微信,我相信是个人都应该知道,几乎人人都会安装这款社交APP吧,它已经成为了我们生活中不可缺少的一份子. 我记得我上大学那会刚接触Java,做的第一个小项目就是基于J2SE的聊天室,使用Java ...

  3. Vue2 全家桶仿 微信App 项目,支持多人在线聊天和机器人聊天

    前言 这个项目是利用工作之余写的一个模仿微信app的单页面应用,整个项目包含27个页面,涉及实时群聊,机器人聊天,同学录,朋友圈等等,后续页面还是开发中.写这个项目主要目的是练习和熟悉vue和vuex ...

  4. 【前端vue进阶实战】:从零打造一个流程图、拓扑图项目【Nuxt.js + Element + Vuex】 (一)

    本系列教程是用Vue.js + Nuxt.js + Element + Vuex + 开源js绘图库,打造一个属于自己的在线绘图软件,最终效果:topology.le5le.com .如果你觉得好,欢 ...

  5. 基于PHP实现一个简单的在线聊天功能(轮询ajax )

    基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...

  6. 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。

    基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍.最后我们将会实现一个基于S ...

  7. vue.js+socket.io+express+mongodb打造在线聊天

    vue.js+socket.io+express+mongodb打造在线聊天 在线地址观看 http://www.chenleiming.com github地址 https://github.com ...

  8. vue.js+socket.io+express+mongodb打造在线聊天[二]

    vue.js+socket.io+express+mongodb打造在线聊天[二] 在线地址观看 http://www.chenleiming.com github地址 https://github. ...

  9. Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例

    Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...

随机推荐

  1. TinyML-TVM如何驯服TinyML

    TinyML-TVM如何驯服TinyML 低成本,以人工智能为动力的消费类设备的激增,导致机器学习研究人员和从业人员对"裸机"(低功耗,通常没有操作系统)设备产生了广泛的兴趣.尽管 ...

  2. 使用NVIDIA GRID vPC支持视频会议和算力工具

    随着2020年的发展,远程工作解决方案已成为许多人的新常态.企业正在寻找行之有效的解决方案,如虚拟桌面基础设施(VDI),以使他们的团队能够在任何地方安全地工作.然而,最新的算力和视频会议应用程序需要 ...

  3. Waymo的激光雷达计划:进展如何?

    Waymo的激光雷达计划:进展如何? Waymo's Lidar Plan: How's It Working out? 许多自动驾驶汽车(AV)开发商一直在热烈追求激光雷达技术,这一技术之所以重要, ...

  4. 与现代传感器的接口:轮询ADC驱动程序

    与现代传感器的接口:轮询ADC驱动程序 Interfacing with modern sensors: Polled ADC drivers 我们研究了在现代嵌入式应用程序中,开发人员应该如何创建一 ...

  5. JS使用Enter事件将输入的字符倒叙输出

    在JavaScript中执行当用户按下Enter键位时将用户输入的字符倒叙输出! HTML代码: <body> <form id="form1" runat=&q ...

  6. Django(60)Django内置User模型源码分析及自定义User

    前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了.它的完整的路径是在django.contrib.auth.models.User. User模型源码分析 ...

  7. 七、AIDE入侵检测

    Aide通过检查数据文件的权限.时间.大小.哈希值等,校验数据的完整性 部署AIDE入侵检测系统 [root@proxy ~]# yum -y install aide         //安装软件包 ...

  8. 提高GUI自动化测试稳定性解决方案

    针对"GUI自动化测试稳定性问题"这个问题,最典型的情景就是:同样的测试用例,在同样的测试执行环境下,测试的结果有时是Success,有时是Fail,这严重降低了GUI测试的可信度 ...

  9. Linux网络命令与脚本使用

    作为系统管理员,经常需要诊断和解决网络问题,而配置.监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分.这里总结一下常用与Linux网络管理的命令 ...

  10. 20204107 孙嘉临《PYTHON程序设计》计算器设计实验二报告

    课程:<python程序设计> 班级:2041 姓名:孙嘉临 学号:20204107 实验教师:王志强 实验日期:2021年4月12日 必修/选修:公选课 ##一.实验内容 设计并完成一个 ...