linux桌面小程序开发日记-5(pyqt5+yolov5)

Linux小程序开发日记-5

哈喽,大家好,好久不见,咱今天,又开始我的小程序开发啦。

然后这几天呢,我开始记录开发这个小程序的视频啦,欢迎大家来康康。

视频链接

linux桌面小程序开发日记-2

最后一篇博客地址:https://blog.youkuaiyun.com/Liuchengzhizhi/article/details/123692365

B站视频:https://www.bilibili.com/video/BV1rZ4y1B7t8?share_source=copy_web

源码:https://gitee.com/wx_b915676bb6/yolo-pyqt.git

记得上一次咱们可以将识别的数据显示在旁边的表格中,但是呢还有很多内容没有加上去。所以这一次,咱把这个GUI没有完善的内容咱把他们完善好

今天的任务:

  • 将加载UI界面的,单独放在一个python文件内
  • 对识别的内容,进行一个排序,能够统计标签的个数
  • 对这些识别的标签,进行表格的匹配,显示价格
  • 进行一个计价

第一步:重新优化UI代码

这里呢,我单独的将ui代码,放在了我的food_ui文件里面

在这里插入图片描述

代码如下:

# @Author: Cjuicy 
# @Date: 2022-03-21 16:07:16 
# @Last Modified by:   Cjuicys 
# # @Last Modified time: 2022-03-21 16:07:16  */

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *



class Ui_MainWindow(object):
    '''程序界面布局'''
    def set_ui(self):
        self.__layout_main = QtWidgets.QGridLayout()           #总布局
        self.__layout_fun_button1 = QtWidgets.QHBoxLayout()      #按键布局1
        self.__layout_fun_button2 = QtWidgets.QHBoxLayout()      #按键布局2
        self.__layout_data_show = QtWidgets.QVBoxLayout()       #数据(视频)显示布局
        self.__layout_list_show  = QtWidgets.QVBoxLayout()          #表格布局

        self.button_confirm = QtWidgets.QPushButton('确认') #建立用于打开摄像头的按键
        self.button_settle_accounts = QtWidgets.QPushButton('结账') #建立结账的按钮
        self.list_show =  QtWidgets.QTableWidget(6,3)                          #建立表格
        self.label_account = QtWidgets.QLabel("总价:")                          #建立label

        '''set butten size '''
        self.button_confirm.setMinimumHeight(50)                #设置按键大小
        self.button_settle_accounts.setMinimumHeight(50)
        self.label_account.setMinimumHeight(50)
        

        # self.button_close.move(10,100)                      #移动按键  这句话去掉好像也没关系
        '''设置标签的格式'''
        font = QtGui.QFont()
        font.setPixelSize(18)
        self.label_account.setFont(font)

        '''设置表格'''
        self.list_show.setHorizontalHeaderLabels(["名称","数量","单价"])
        self.list_show.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)# adaptive size
        self.list_show.setEditTriggers(QAbstractItemView.EditTrigger(False))    #将表格的内容设为不可编辑
        '''信息显示'''
        self.label_show_camera = QtWidgets.QLabel()   #定义显示视频的Label
        self.label_show_camera.setFixedSize(641,481)    #给显示视频的Label设置大小为641x481
        '''把按键加入到按键布局中'''
        self.__layout_fun_button1.addWidget(self.button_confirm) #把重新确认的按键放到按键布局中
        # self.__layout_fun_button1.addWidget(self.button_close)       #把退出程序的按键放到按键布局中
        self.__layout_fun_button2.addWidget(self.button_settle_accounts) #把结账的按键放到按键布局中
        '''把表格加入到表格布局中'''
        self.__layout_list_show.addWidget(self.list_show)           #将表格添加到表格布局中
        self.__layout_list_show.addWidget(self.label_account) #将总价label添加到表格布局中


        '''把某些控件加入到总布局中'''
        self.__layout_main.addLayout(self.__layout_list_show,0,0)            #将表格布局添加到总布局中
        self.__layout_main.addLayout(self.__layout_fun_button1,1,1)      #把按键布局加入到总布局中
        self.__layout_main.addLayout(self.__layout_fun_button2,1,0)      #把按键布局加入到总布局中
        self.__layout_main.addWidget(self.label_show_camera,0,1)        #把用于显示视频的Label加入到总布局中
        
        # '''总布局布置好后就可以把总布局作为参数传入下面函数'''
        # self.setLayout(self.__layout_main) #到这步才会显示所有控件
        # 返回所有的页面布局
        return self.__layout_main
 

第二步 读取csv文件

我把他放在了price_utils.py里面

在这里插入图片描述

代码如下

# 
# @Author: Cjuicy 
# @Date: 2022-03-21 20:25:16 
# @Last Modified by:   Cjuicys 
# @Last Modified time: 2022-03-21 20:25:16 
# 
'''
存放价钱的读函数
'''
import csv

from pip import main


# 读取csv文件获得价钱信息
def get_price_info():
    price_info = {
   }
    with open('priceInfo.csv', 'r') as csvfile: # 此目录即是当前项目根目录
        spamreader = csv.reader(csvfile)
        # 逐行遍历csv文件,按照字典存储用户名与密码
        for row in spamreader:
            price_info[row[0]] = row[1]
    return price_info

第三步 修改我的主文件

修改主文件,将我想要的内容显示在表格上,同时进行一个乘法计算

主文件:
在这里插入图片描述

关键代码如下

  #这是初始化函数里面的
  self.ui = Ui_MainWindow()
  self.price_info = price_utils.get_price_info()      # 初始化 获取表格价钱信息(应为量少,可以这么做,安全等其他因素,应该走数据库)
  layout_main = self.ui.set_ui()                       #初始化页面布局,并获取所有的页面布局


 #这里是处理标签的函数,并将它显示在GUI 表格上
    def set_labels(self ,labels )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值