Python+Qt桌面端与网页端人工客服沟通工具

news2024/11/15 6:44:10

程序示例精选

Python+Qt桌面端与网页端人工客服沟通工具

如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对<<Python+Qt桌面端与网页端人工客服沟通工具>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。

功能:网页中如有用户询问留言,桌面端程序会及时收到网页传送的用户询问信息,以便得到客服及时查看回复。


文章目录

一、所需工具软件

二、使用步骤

        1. 引入库

        2. 代码实现

        3. 运行结果

三、在线协助

一、所需工具软件

1. Python, Qt

2. 数据库

二、使用步骤

1.引入库

import cv2
import sys
import os
import random
from mainWindow import Ui_MainWindow
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

2. 代码实现

代码如下:

# coding:utf-8
# import sys
#从转换的.py文件内调用类
import cv2
import sys
import os
import random
from mainWindow import Ui_MainWindow
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *


class myWin(QtWidgets.QMainWindow,Ui_MainWindow):
    def __init__(self):
        super(myWin, self).__init__()
        self.setupUi(self)

    #closeEvent2暂时不用
    def closeEvent2(self, event):
        self.box = QMessageBox(QMessageBox.Warning, "系统提示信息", "是否暂停摄像头?")
        qyes = self.box.addButton(self.tr("是"), QMessageBox.YesRole)
        qno = self.box.addButton(self.tr("否"), QMessageBox.NoRole)
        self.box.exec_()
        if self.box.clickedButton() == qyes:
            self.label.clear()
            while 1:
                if cv2.waitKey(1) == ord('q'):
                    break
            self.cap.release()
            cv2.destroyAllWindows()
        else:
            event.ignore()


    # # 退出系统窗口 X 绑定函数事件
    def closeEvent(self, event):
        # print("test")
        self.box = QMessageBox(QMessageBox.Warning, "系统提示信息", "是否退出系统?")
        qyes = self.box.addButton(self.tr("是"), QMessageBox.YesRole)
        qno = self.box.addButton(self.tr("否"), QMessageBox.NoRole)
        self.box.exec_()
        if self.box.clickedButton() == qyes:
            event.accept()
            QtWidgets.QWidget.closeEvent(self, event)
            sys.exit().accept()
        else:
            event.ignore()


    def videoRecog2(self):

        print("videoRecog2")
        global receiveID
        #receiveID = self.lineEdit.text()
        receiveID = "001"
        print("receiveID", receiveID)

        #得到receive信息*********************************************************
        # try:
        import sqlite3
        import datetime
        from datetime import datetime
        conn = sqlite3.connect("record.db", check_same_thread=False)
        curr = conn.cursor()
        curr.execute('select name from record where id="' + receiveID + '"')
        result2 = curr.fetchall()
        print("result2:", result2)
        curr.execute('select receive from record where id="' + receiveID + '"')
        result3 = curr.fetchall()
        print("result3:", result3)
        curr.execute('select record_time_receive from record where id="' + receiveID + '"')
        result4 = curr.fetchall()
        print("result4:", result4)
        curr.execute('select receive_history from record where id="' + receiveID + '"')
        result5 = curr.fetchall()
        print("result5:", result5)
        # if result2 and result3 and result4:
        #     for i in result2: i = list(i); result2 = ','.join(i)
        #     for i in result3: i = list(i); result3 = ','.join(i)
        #     for i in result4: i = list(i); result4 = ','.join(i)
        print("result2", result2)
        print("result3", result3)
        print("result4", result4)
        print("result5", result5)


        if result4 != result5:
            self.textEdit.append("")
            self.textEdit.append(str(receiveID)+"  "+"收到的信息")
            self.textEdit.append("时间:" + result4)
            self.textEdit.append("内容:"+result3)

        # 得到receive信息_结束***********************************************

            #保存receive信息到receive_history里面
            curr.execute('update record set receive_history = "' + str(result4) + '" where id="' + str(receiveID) + '"')


            # 保存receive信息到receive_history里面_结束


        # except:
        #     print("lineEditor is blank")

        conn.commit()
        curr.close()
        conn.close()

    def sendoutInfor(self):

        #receiveID = self.lineEdit.text()
        receiveID = "001"
        print("receiveID", receiveID)


        print("sendoutInfor")
        sendOut = self.textEdit_2.toPlainText()
        print("sendOut", sendOut)

        #送出信息*********************************************************
        # try:
        import sqlite3
        import datetime
        from datetime import datetime
        conn = sqlite3.connect("record.db", check_same_thread=False)
        curr = conn.cursor()
        curr.execute('update record set sendout = "' + str(sendOut) + '" where id="' + str(receiveID) + '"')
        curr.execute('update record set record_time_sendout = "' + currentTime + '" where id="' + str(receiveID) + '"')

        self.textEdit.append("")
        self.textEdit.append(str(receiveID)+"  " + "发送的信息")
        # except:
        #     print("lineEditor is blank")

        conn.commit()
        curr.close()
        conn.close()


def set_line_color(text_edit, line_number, color):
    cursor = text_edit.textCursor()
    cursor.movePosition(cursor.Start)
    for i in range(line_number - 1):
        cursor.movePosition(cursor.NextBlock)
    cursor.select(cursor.BlockUnderCursor)

    format = QTextCharFormat()
    format.setForeground(color)
    cursor.mergeCharFormat(format)

if __name__=="__main__":
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    app=QtWidgets.QApplication(sys.argv)
    Widget=myWin()
    Widget.showMaximized();
    Widget.show()
    sys.exit(app.exec_())

3. 运行结果

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Qt, C++, Python入门指导
3)界面美化
4)软件制作

当前文章连接:https://blog.csdn.net/alicema1111/article/details/131258803

博主推荐文章:python人脸识别统计人数qt窗体-CSDN博客

博主推荐文章:Python Yolov5火焰烟雾识别源码分享-CSDN博客

                         Python OpenCV识别行人入口进出人数统计_python识别人数-CSDN博客

个人博客主页:alicema1111的博客_CSDN博客-Python,C++,网页领域博主

博主所有文章点这里alicema1111的博客_CSDN博客-Python,C++,网页领域博主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/656122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java swing 购物系统 简要文档 idea eclipse双版本

java swing 购物系统 简要文档 idea eclipse双版本 安装包等资源项目源码项目安装包部署教程 图片演示添加商品类别界面添加商品界面查询商品界面未登录主界面管理员登录界面注册会员界面购买商品界面商品类别管理界面 核心代码CustomerAddInterFrm.javaMainFrm.javaManagerLog…

单片机基于 Linux 环境下的Makefile 工程管理和工具链配置

一、开发环境 开发板&#xff1a;stm32f407 编译环境&#xff1a;18.04.6 LTS 工具链&#xff1a;gcc-arm-none-eabi, gcc-arm-none-objcopy 二、工具链下载和安装 下载地址&#xff1a;&#xff08;下载64位linux版&#xff09; https://launchpad.net/gcc-arm-embedded/downl…

从零开始Vue项目中使用MapboxGL开发三维地图教程(五)加载点、线、面图层以及三维面图层(白模)

目录 1、加载点图层2、加载线和面图层3、加载三维面图层&#xff08;白模&#xff09; 1、加载点图层 开发地图应用时&#xff0c;加载POI等点状数据&#xff0c;显示文字或者图标信息&#xff0c;mapbox-gl对应使用的是符号图层&#xff08;symbol&#xff09;&#xff0c;下面…

Modbus通信介绍 网络高级工具使用

目录 Modbus简介 ModbusTCP协议格式 》1.报文头&#xff08;共7字节&#xff09; 》2.功能码 》3.数据 练习&#xff1a;读传感器数据&#xff0c;读1个寄存器数据&#xff0c;写出主从数据收发协议。 练习&#xff1a;写出控制IO设备开关的协议数据&#xff0c;操作1个…

ansible学习

在物理机查看环境&#xff0c;[kioskfoundation0 ~]$ cat /etc/rht 先清空当前环境&#xff0c;[kioskfoundation0 ~]$ rht-clearcourse 0 再切换rh294环境&#xff0c;[kioskfoundation0 ~]$ rht-setcourse rh294 验证环境是否切换成功&#xff0c;[kioskfoundation0 ~]$ cat…

230617已安装SqlServer2017Express,再安装一个SqlServer2017ExpressAdvanced试试

再安装一个 MsSqlServer 试试 再安装一个 MsSqlServer 试试, 这次用高级版 之前已经安装了 一个 MsSqlServer2017Express一个MsSqlServer2017LocalDB 现在再安装一个 MsSqlServer2017ExpressAdvanced 直接下一步 等待 下个页面列出了已经安装的MsSqlServer实例 之前已…

【群智能算法改进】一种改进的白鲸优化算法 改进白鲸优化算法 改进后的EBWO[2]算法【Matlab代码#42】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 原始BWO算法2. 改进后的EBWO算法2.1 准反向学习QOBL策略2.2 旋风觅食策略 3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节&#xff1a;资源获取】 1. 原始BWO算法 白鲸优化算法 (BWO&#xff…

STM32pwm 时钟 配置 周期 频率 关系配置原理

一 概念 PWM&#xff08;脉冲宽度调制&#xff09;是一种常用的电子信号调制技术&#xff0c;用于控制电子设备中的电平和电流。它通过调整脉冲的宽度来控制信号的平均功率。 在PWM信号中&#xff0c;一个周期由一个固定的频率确定&#xff0c;称为PWM频率。每个周期内&#…

分布式锁服务关键技术和常见解决方案

前言 锁&#xff0c;核心是协调各个使用方对公共资源使用的一种机制。当存在多个使用方互斥地使用某一个公共资源时&#xff0c;为了避免并行使用导致的修改结果不可控&#xff0c;需要在某个地方记录一个标记&#xff0c;这个标记能够被所有使用方看到&#xff0c;当标记不存在…

Matter.js 插件:matter-wrap(世界是圆的)

theme: smartblue 本文简介 点赞 关注 收藏 学会了 记得以前看爆笑校园里有一集讲到&#xff0c;一个人对着前面开了一枪&#xff0c;过了一阵子弹打中他自己的后脑勺。作者想通过这个冷笑话告诉大家一件事&#xff1a;地球是圆的。 在 Matter.js 世界里&#xff0c;默认是没…

stable-diffusion-webui远程访问、插件在线安装

本篇文章可以解决以下问题&#xff1a;stable-diffusion-webui 安装插件报错、没有用户登录安全认证、云主机安装后无法远程访问。 成功安装stable-diffusion-webui后&#xff0c;可以通过命令 bash webui.sh 启动。启动后可以通过 http://127.0.0.1:7860访问。但无法进行远程…

QML快速上手1 - 预备知识

目录 前言QtQuick 预备知识二维坐标系textimagemousearea组件定位元件布局项输入元素 前言 此笔记及后续所有笔记均基于如下环境 Qt Quick 2.12Qt 5.12 参考文献&#xff1a; qmlbook 以下所有笔记均从上述qmlbook中选取精华得来&#xff0c;如果嫌英文太多或者原文太长&am…

【论文系列解读】MiniGPT-4: 增强视觉语言理解与先进的大型语言模型

Minigpt4 MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models MiniGPT-4: 增强视觉语言理解与先进的大型语言模型 (0) 总结&实测 minigpt是先提出来的&#xff0c;将视觉编码器和LLM对齐&#xff0c;blip2和它还是有蛮大区别的。…

Python中对基本文件操作

1.文件的作用 保存数据放在磁盘中 2.打开文件 fopen(‘文件’,‘w’)或者fopen(‘文件’,‘r’) 3.文件操作 3.1 写数据(write) 如果文件不存在那么创建&#xff0c;如果存在那么就先清空&#xff0c;然后写入数据 对象open(“文件”,w) 对象.write&#xff08;“写入数…

论文浅尝 | 用于推荐的知识自适应对比学习

笔记整理&#xff1a;俞洪涛&#xff0c;浙江大学硕士&#xff0c;研究方向为知识图谱表示学习 链接&#xff1a;https://dl.acm.org/doi/10.1145/3539597.3570483 动机 在基于知识图谱的推荐系统中&#xff0c;用户和项目的交互信息通常会在模型中占主导地位&#xff0c;而KG中…

OPA Gatekeeper对Kubernetes资源操作限制

OPA介绍 Open Policy Agent&#xff08;OPA&#xff0c;发音为“oh-pa”&#xff09;是一个开源的通用策略引擎&#xff0c;它统一了堆栈中的策略执行。OPA 提供了一种高级声明性语言&#xff0c;可让您将策略指定为代码和简单的 API&#xff0c;以从您的软件中卸载策略决策制…

第七十六天学习记录:计算机硬件技术基础:Intel系列微处理器

Intel系列微处理器概述 8086/8088微处理器 8086/8088微处理器是英特尔公司于1978年推出的16位处理器&#xff0c;在80年代是个非常流行的芯片&#xff0c;被广泛用于个人电脑和工作站。它是x86家族处理器的一员&#xff0c;被视为现代PC体系结构的基础。 8086/8088微处理器的…

对耳朵伤害最小的耳机类型,列举几款不入耳的骨传导耳机

骨传导耳机是最近几年火爆起来的耳机&#xff0c;它是将声音转化为不同频率的机械振动&#xff0c;通过人的颅骨、骨迷路、内耳淋巴液、螺旋器、听神经、听觉中枢来传递声波。与普通耳机相比最大的区别是声音不经过外耳道&#xff0c;避免了耳道长时间堵塞导致的中耳炎疾病发生…

基于机器学习算法:朴素贝叶斯和SVM 分类-垃圾邮件识别分类系统(含Python工程全源码)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境安装pytesseract注册百度云账号 模块实现1. 数据模块2. 模型构建3. 附加功能 系统测试1. 文字邮件测试准确率2. 网页测试结果 工程源代码下载其它资料下载 前言 本项目采用朴素贝叶斯和支持向量机&#xff08;S…

石化园区宽带自组网应急通信方案

痛点需求 传统的通信手段在可靠性、即时性、安全性、可视化等方面的能力相对较弱&#xff0c;无法从根本上满足石化园区的应急通信需求。结合某大型石化园区实际需求&#xff0c;现亟需建设一套高可靠、高安全、广覆盖、机动灵活且支持多媒体通信的应急通信系统&#xff0c;以…