实现效果:
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_())