class DataThread(QThread): valueUpdated = pyqtSignal(float) def run(self): ser = serial.Serial('COM3', 9600) while True: data = ser.readline() if data: # 将字符串按空格分割,并取第三个元素作为数值 value_str = data.decode().strip().split()[1] value = float(value_str) self.valueUpdated.emit(value) ser.close()获取到数据后上传到数据库,并弹窗是否上传成功
时间: 2024-01-01 16:03:37 浏览: 144
Qt-study.zip_Qt经典_site:www.pudn.com
你可以在 `run` 函数中添加上传到数据库的代码,并在上传成功后弹出上传成功的提示框。具体实现如下:
```python
import pymysql
from PyQt5.QtWidgets import QMessageBox
class DataThread(QThread):
valueUpdated = pyqtSignal(float)
def run(self):
ser = serial.Serial('COM3', 9600)
while True:
data = ser.readline()
if data:
# 将字符串按空格分割,并取第三个元素作为数值
value_str = data.decode().strip().split()[1]
value = float(value_str)
self.valueUpdated.emit(value)
# 将数据上传到数据库
try:
db = pymysql.connect(host='localhost', user='root', password='password', database='test')
cursor = db.cursor()
sql = "INSERT INTO data(value) VALUES (%s)"
cursor.execute(sql, (value,))
db.commit()
db.close()
# 弹出上传成功的提示框
QMessageBox.information(None, '上传成功', '数据已成功上传到数据库!', QMessageBox.Ok)
except Exception as e:
print(e)
```
需要注意的是,上传到数据库需要根据你的数据库配置修改相应的参数。另外,如果上传失败,可以将错误信息打印出来以便进行排查。
阅读全文