You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DCS/UI/Setting/TCPSetting.py

150 lines
5.4 KiB
Python

from PyQt5.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PyQt5.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PyQt5.QtWidgets import (QApplication, QGridLayout, QLabel, QLineEdit,
QPushButton, QSizePolicy, QSpacerItem, QWidget, QComboBox, QMessageBox, QSplitter, QListView)
from utils.DBModels.ProtocolModel import TCPSetting
class CustomBox(QComboBox):
def __init__(self):
super(CustomBox, self).__init__()
self.setCursor(Qt.PointingHandCursor)
self.setView(QListView())
def showPopup(self):
super(CustomBox, self).showPopup()
pop = self.children()[1]
pop.move(pop.x(), pop.y() + 51)
class TCPSettingWidget(QWidget):
BORDER_WIDTH = 5
def __init__(self):
super(TCPSettingWidget, self).__init__()
self.gridLayout_2 = QGridLayout(self)
self.gridLayout_2.setObjectName("gridLayout_2")
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
self.gridLayout_2.addItem(self.verticalSpacer, 0, 1, 3, 12)
self.gridLayout = QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.label = QLabel(self)
self.label.setObjectName("setlabel")
self.label.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter)
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.gridLayout.addItem(self.horizontalSpacer_3, 2, 0, 1, 4)
self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.gridLayout.addItem(self.horizontalSpacer_4, 5, 0, 1, 4)
self.ipEdit = QLineEdit(self)
self.ipEdit.setObjectName("setEdit")
self.gridLayout.addWidget(self.ipEdit, 1, 0, 1, 3)
self.freEdit = QLineEdit(self)
self.freEdit.setObjectName("setEdit")
self.gridLayout.addWidget(self.freEdit, 7, 0, 1, 3)
self.portEdit = QLineEdit(self)
self.portEdit.setObjectName("setEdit")
self.gridLayout.addWidget(self.portEdit, 4, 0, 1, 3)
self.label_2 = QLabel(self)
self.label_2.setObjectName("setlabel")
self.label_2.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter)
self.gridLayout.addWidget(self.label_2, 3, 0, 1, 1)
self.label_3 = QLabel(self)
self.label_3.setObjectName("setlabel")
self.label_3.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter)
self.gridLayout.addWidget(self.label_3, 6, 0, 1, 1)
self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.gridLayout.addItem(self.horizontalSpacer_5, 8, 0, 1, 4)
self.offsetBox = CustomBox()
self.offsetBox.addItem("1")
self.offsetBox.addItem("0")
self.offsetBox.setObjectName("setBox")
#self.gridLayout.addWidget(QLabel('起始值'), 6, 0, 1, 1)
self.label_4 = QLabel('起始值')
self.label_4.setObjectName('setlabel')
self.gridLayout.addWidget(self.label_4,9, 0, 1, 2)
self.gridLayout.addWidget(self.offsetBox, 10, 0, 1, 3)
self.gridLayout.addItem(QSpacerItem(40, 20), 11, 0, 1, 4)
self.gridLayout_2.addLayout(self.gridLayout, 3, 5, 2, 2)
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.gridLayout_2.addItem(self.horizontalSpacer, 7, 0, 3, 5)
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
self.gridLayout_2.addItem(self.verticalSpacer_2, 7, 0, 3, 5)
self.saveButton = QPushButton(self)
self.saveButton.setObjectName("setButton")
#self.gridLayout.addWidget(QSplitter(), 11, 0, 1, 5)
self.gridLayout.addWidget(self.saveButton, 12, 0, 1, 3)
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.gridLayout_2.addItem(self.horizontalSpacer_2, 9, 2, 3, 5)
self.label.setText(QCoreApplication.translate("self", u"IP\u5730\u5740", None))
self.label_2.setText(QCoreApplication.translate("self", u"\u7aef\u53e3\u53f7", None))
self.label_3.setText(QCoreApplication.translate("self", u"\u901a\u8baf\u9891\u7387", None))
self.saveButton.setText(QCoreApplication.translate("self", u"\u4fdd\u5b58", None))
self.saveButton.clicked.connect(self.saveSetting)
def setupUI(self):
# host = CharField()
# port = IntegerField()
# frequency = CharField()
query = TCPSetting.get_by_id(1)
port = str(query.port)
host = str(query.host)
frequency = str(query.frequency)
offset = str(query.offset)
self.ipEdit.setText(host)
self.portEdit.setText(port)
self.freEdit.setText(frequency)
self.offsetBox.setCurrentText(offset)
def saveSetting(self):
host = self.ipEdit.text()
port = self.portEdit.text()
frequency = self.freEdit.text()
offset = self.offsetBox.currentText()
TCPSetting.update(host = host, port = port, frequency = frequency, offset = offset).where(TCPSetting.id == 1).execute()
QMessageBox.information(self, 'Sucess', '保存成功')