项目实战:如何使用GUI编程制作一个计费工具

实现效果:
在这里插入图片描述

import pymysql
import sys
from roside_order_test import datatest
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import *
import requests,json,urllib3

class MyClass(QWidget, datatest.Ui_Form):
    def __init__(self):
        super().__init__()
        self.InitUi()
        #self.My_Sql()

    def InitUi(self):
        self.setupUi(self)
        self.setWindowTitle("路内计费规则测试专用软件")
        self.show()
        self.pushButton.clicked.connect(self.fun)
        self.pushButton_2.clicked.connect(self.fun2)
        self.pushButton_3.clicked.connect(self.fun3)
        self.pushButton_2.clicked.connect(self.buttonclicked)
        self.pushButton.clicked.connect(self.buttonclicked2)
    def fun3(self):
        self.money(self.lineEdit_2.text())

    def fun(self):
        print(self.lineEdit_2.text())
        self.My_Sql(self.lineEdit_2.text())

    def buttonclicked(self):

        QMessageBox.about(self, '提示', '数据更新成功')

    def buttonclicked2(self):

        QMessageBox.about(self, '提示', '数据获取成功')

    def fun2(self):
        self.My_Sql2(self.dateTimeEdit.text(),self.dateTimeEdit_2.text(),self.lineEdit_2.text())

    def Table_Data(self,i,j,data):

        item = QtWidgets.QTableWidgetItem()
        self.get_data.setItem(i,j, item)
        item = self.get_data.item(i,j)
        item.setText(self._translate("Form", str(data)))

    def My_Sql(self,order_id):  # 连接mysql数据库

        connection = pymysql.connect(host="222.98.100.194", port=13306, user='root', password="test@2020", db="roside")
        print('successfully connect')
        cur = connection.cursor()
        sql = f'SELECT start_time,end_time FROM t_roside_order WHERE  order_id="{order_id}"'
        print(sql)
        cur.execute(sql)  # 将数据从数据库中拿出来
        total = cur.fetchall()
        connection.close()

        col_result = cur.description
        print(col_result)
        self.row = cur.rowcount  # 取得记录个数,用于设置表格的行数
        self.vol = len(total[0])  # 取得字段数,用于设置表格的列数
        col_result = list(col_result)
        a = 0
        self.get_data.setColumnCount(self.vol)
        self.get_data.setRowCount(self.row)
        self._translate = QtCore.QCoreApplication.translate
        for i in col_result:  # 设置表头信息,将mysql数据表中的表头信息拿出来,放进TableWidget中
            item = QtWidgets.QTableWidgetItem()
            self.get_data.setHorizontalHeaderItem(a, item)
            item = self.get_data.horizontalHeaderItem(a)
            item.setText(self._translate("Form", i[0]))
            a = a + 1

        total = list(total)  # 将数据格式改为列表形式,其是将数据库中取出的数据整体改为列表形式
        print(total)
        totalx=total[0][0]
        print(totalx)
        for i in range(len(total)):  # 将相关的数据
            total[i] = list(total[i])  # 将获取的数据转为列表形式
        for i in range(self.row):
            for j in range(self.vol):
                self.Table_Data(i, j, total[i][j])


    def My_Sql2(self,n,m,i):  # 连接mysql数据库

        connection = pymysql.connect(host="222.98.100.194", port=13306, user='root', password="test@2020", db="roside")
        print('successfully connect')
        cur= connection.cursor()
        sql1 = f'update t_roside_order set start_time="{n}",end_time="{m}" where order_id="{i}"'
        cur.execute(sql1)
        connection.autocommit(True)
        connection.close()

    def money(self,e):
        urllib3.disable_warnings()
        url = f"https://test.xtingc.com/zk_xm/rosideorder/order/detail/{e}"
        headers = {
            'Content-Type': "application/json",
        }
        response = requests.request("GET", url, headers=headers, verify=False)
        result = json.loads(response.text)
        w = result["res"]["data"]["payment"]
        z = w / 100
        self.lcdNumber.setProperty("value", z)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mc = MyClass()
    sys.exit(app.exec_())
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值