0531更新

ModbusPack
zhangxuxutm 2 years ago
parent 0932d2e226
commit 041e3258ae

@ -664,6 +664,18 @@ QComboBox#ProTypeBox{
}
QComboBox#timeBox{
border: 0px;
font: 22px "PingFangSC-Regular";
width: 40px;
height: 20px;
}
QComboBox#TcRtdTypeBox,QComboBox#ModbusTypeBox {
border: 0px;
@ -678,7 +690,7 @@ QComboBox#TcRtdTypeBox,QComboBox#ModbusTypeBox {
}
QComboBox#setBox::drop-down, QComboBox#ProTypeBox::drop-down,QComboBox#TcRtdTypeBox::drop-down, QComboBox#ModbusTypeBox::drop-down {
QComboBox#setBox::drop-down, QComboBox#ProTypeBox::drop-down,QComboBox#TcRtdTypeBox::drop-down, QComboBox#ModbusTypeBox::drop-down{
subcontrol-origin: padding;
@ -689,7 +701,18 @@ QComboBox#setBox::drop-down, QComboBox#ProTypeBox::drop-down,QComboBox#TcRtdType
border:none;
}
QComboBox#setBox::drop-down, QComboBox#ProTypeBox::drop-down,QComboBox#TcRtdTypeBox::drop-down, QComboBox#ModbusTypeBox::drop-down {
QComboBox#timeBox::drop-down{
subcontrol-origin: padding;
subcontrol-position: top right;
width: 25px;
border:none;
}
QComboBox#setBox::drop-down, QComboBox#ProTypeBox::drop-down,QComboBox#TcRtdTypeBox::drop-down, QComboBox#ModbusTypeBox::drop-down, QComboBox#timeBox::drop-down{
image: url(Static/down.png);
@ -756,6 +779,14 @@ QComboBox#setBox QAbstractItemView::item:hover{
font-weight: 520;
}
QComboBox#timeBox QAbstractItemView::item:hover{
background-color:#7cceff;
color: #889399;
}
QTextEdit#mesEdit{
border: 2px solid #dddddd;
border-radius: 8px;
@ -763,5 +794,14 @@ QTextEdit#mesEdit{
font-size: 20px;
}
QListView#trendListView{
font: 22px "PingFangSC-Regular";
}
QListView#trendListView::item{
margin-bottom: 10px;
}

@ -77,6 +77,7 @@ class TrendWidgets(QWidget):
self.timeBox.activated.connect(self.refreshList)
self.listview = QListView()
self.listview.setObjectName("trendListView")
self.model = QStandardItemModel()
@ -103,7 +104,7 @@ class TrendWidgets(QWidget):
self.gridLayout.addWidget(self.timeBox, 0, 0, 1, 3)
self.gridLayout.addWidget(self.delBtn, 0, 3, 1, 1)
self.gridLayout.addWidget(self.listview, 1, 0, 14, 4)
self.gridLayout.addWidget(self.trendWebView, 0, 4, 15, 15)
self.gridLayout.addWidget(self.trendWebView, 0, 4, 15, 22)
self.gridLayout.setSpacing(10)
self.gridLayout.setContentsMargins(20, 20, 20, 20)
@ -117,6 +118,8 @@ class TrendWidgets(QWidget):
self.historyDB.deleteMem()
InfluxMem.deleteMem(self.historyDB.mem)
self.getMems()
self.exchangeProject()
self.model.clear()
def itemCheckstate(self):
# 勾选变量复选框事件

@ -0,0 +1,152 @@
import base64
import win32api
from pyDes import *
import binascii
from PyQt5.QtCore import QSize, Qt
from PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog, QWidget, QLineEdit, QPushButton, QHBoxLayout, QVBoxLayout, QMessageBox, QLabel
from PyQt5 import QtCore, QtGui, QtWidgets
import os
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
# self.setupUi()
def setupUi(self):
layout = QVBoxLayout()
# 第一行
label1 = QLabel('Label 1')
#第二行
input1 = QLineEdit()
# 第三行
label2 = QLabel('Label 2')
# 第四行
input2 = QLineEdit()
# 第五行
button = QPushButton('Button')
layout.addWidget(button, alignment=Qt.AlignCenter)
self.show()
def initUI(self):
# 创建两个 QLineEdit 控件
self.line_edit1 = QLineEdit()
self.line_edit2 = QLineEdit()
self.label1 = QLabel('输入盘符号:')
self.label2 = QLabel('激活码:')
self.reg = register()
self.button2 = QPushButton('生成激活码')
self.button2.clicked.connect(self.check_license)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
vbox = QVBoxLayout()
vbox.addItem(spacerItem2)
vbox.addWidget(self.label1)
vbox.addWidget(self.line_edit1)
vbox.addWidget(self.label2)
vbox.addWidget(self.line_edit2)
vbox.addItem(spacerItem2)
vbox1 = QHBoxLayout()
vbox1.addItem(spacerItem)
vbox1.addWidget(self.button2)
vbox1.addItem(spacerItem)
vbox2 = QVBoxLayout()
vbox2.addLayout(vbox)
vbox2.addLayout(vbox1)
vbox2.addItem(spacerItem2)
# 设置窗口布局,并设置窗口的标题和大小
self.setLayout(vbox2)
self.setWindowTitle('产品许可激活')
self.resize(300, 300)
# 显示窗口
self.show()
def check_license(self):
if self.line_edit1.text():
licese = self.line_edit1.text()
code = self.reg.DesEncrypt(licese).decode('utf-8')
self.line_edit2.setText(code)
else:
reply = QMessageBox.question(self.parent(),
'提示',
"请输入盘符号",
QMessageBox.Yes)
return
class register:
def __init__(self):
self.Des_Key = b"BHC#@*AW" # Key可换
self.Des_IV = b"\x22\x33\x35\x81\xBC\x38\x5A\xE7" # 自定义IV向量可换
# 获取C盘卷序列号
def getCVolumeSerialNumber(self):
CVolumeSerialNumber = win32api.GetVolumeInformation("C:\\")[1]
# print(CVolumeSerialNumber)
if CVolumeSerialNumber:
return str(CVolumeSerialNumber)
else:
return 0
# 使用DES加base64的形式加密
def DesEncrypt(self, str):
# str = str
k = des(self.Des_Key, CBC, self.Des_IV, pad=None, padmode=PAD_PKCS5)
EncryptStr = k.encrypt(str)
print(type(EncryptStr))
return base64.b64encode(EncryptStr) # 转base64编码返回
# 获取注册码,验证
def regist(self, key):
key = key
self.str1 = base64.b64decode(key)
# 由于输入不符合base64规则的字符串会引起异常所以需要增加输入判断
if key:
content = self.getCVolumeSerialNumber()
key_decrypted = str(self.DesDecrypt())
if content != 0 and key_decrypted != 0:
if content != key_decrypted:
print("wrong register code, please check and input your register code again:")
self.regist()
elif content == key_decrypted:
return True
else:
return False
else:
return False
else:
self.regist()
return False
# des解码
def DesDecrypt(self):
k = des(self.Des_Key, CBC, self.Des_IV, pad=None, padmode=PAD_PKCS5)
DecryptStr = k.decrypt(self.str1)
return DecryptStr.decode('utf-8')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())

@ -19,7 +19,7 @@ def parseDate(date_string: str):
class HistoryDBManage():
token = 'bWcPFA8o3CHoWi9dhJJxBHmD6lrpJ0KmzMA06FjAAGzktwwyreVF6dBCL9G2oonXzQdIUQcuMJyCe_TMwM-0XA=='
token = 'jtTFa-rtobjdxWm7fKS7Tk2gZECrXwdM59799SddTcqDWDGiQTPEFYy5VW6IHgsAK5RZMtMLWmpZA3PaipOkmg=='
org = "DCS"
# bucket = "history"
url = "http://localhost:6324"

Loading…
Cancel
Save