优化代码

This commit is contained in:
zhangsheng 2025-04-14 20:30:41 +08:00
parent 69eecc6824
commit ac94c60151
7 changed files with 382 additions and 233 deletions

View File

@ -19,6 +19,7 @@ SOURCES += \
main.cpp \ main.cpp \
mainwindow.cpp \ mainwindow.cpp \
radial_vibration.cpp \ radial_vibration.cpp \
rangeslider.cpp \
relaysetting.cpp \ relaysetting.cpp \
seismic_monitor.cpp \ seismic_monitor.cpp \
setpoint.cpp \ setpoint.cpp \
@ -41,6 +42,7 @@ HEADERS += \
keyphase_data.h \ keyphase_data.h \
mainwindow.h \ mainwindow.h \
radial_vibration.h \ radial_vibration.h \
rangeslider.h \
relaysetting.h \ relaysetting.h \
seismic_monitor.h \ seismic_monitor.h \
setpoint.h \ setpoint.h \

View File

@ -72,6 +72,9 @@ void ConfigMgr::Save() {
} }
if (base_channel_ptr->type_ == kVibRadial) { if (base_channel_ptr->type_ == kVibRadial) {
std::shared_ptr<RadialVariable> radial_ptr = std::dynamic_pointer_cast<RadialVariable>(base_channel_ptr); std::shared_ptr<RadialVariable> radial_ptr = std::dynamic_pointer_cast<RadialVariable>(base_channel_ptr);
if(radial_ptr == nullptr){
continue;
}
// filter // filter
QJsonArray filter; QJsonArray filter;
QJsonObject low_pass; QJsonObject low_pass;
@ -89,7 +92,7 @@ void ConfigMgr::Save() {
band_pass["high"] = radial_ptr->filter_[2].high; band_pass["high"] = radial_ptr->filter_[2].high;
band_pass["checked"] = radial_ptr->filter_[2].checked; band_pass["checked"] = radial_ptr->filter_[2].checked;
filter.append(band_pass); filter.append(band_pass);
channel_item["filter"] = filter; variables["filter"] = filter;
QJsonObject direct; QJsonObject direct;
QJsonObject x1; QJsonObject x1;
QJsonObject x2; QJsonObject x2;
@ -139,6 +142,9 @@ void ConfigMgr::Save() {
variables["latching"] = latching; variables["latching"] = latching;
} else { } else {
std::shared_ptr<AccVelVariable> av_ptr = std::dynamic_pointer_cast<AccVelVariable>(base_channel_ptr); std::shared_ptr<AccVelVariable> av_ptr = std::dynamic_pointer_cast<AccVelVariable>(base_channel_ptr);
if(av_ptr == nullptr){
continue;
}
// filter // filter
QJsonArray filter; QJsonArray filter;
QJsonObject low_pass; QJsonObject low_pass;
@ -156,7 +162,7 @@ void ConfigMgr::Save() {
band_pass["high"] = av_ptr->filter_[2].high; band_pass["high"] = av_ptr->filter_[2].high;
band_pass["checked"] = av_ptr->filter_[2].checked; band_pass["checked"] = av_ptr->filter_[2].checked;
filter.append(band_pass); filter.append(band_pass);
channel_item["filter"] = filter; variables["filter"] = filter;
QJsonObject direct; QJsonObject direct;
QJsonObject x1; QJsonObject x1;
QJsonObject x2; QJsonObject x2;
@ -324,7 +330,7 @@ void ConfigMgr::Load(QString filename) {
case kVibRadial: { case kVibRadial: {
std::shared_ptr<RadialVariable> variable = std::make_shared<RadialVariable>(); std::shared_ptr<RadialVariable> variable = std::make_shared<RadialVariable>();
// filter // filter
QJsonArray filter_array = channel["filter"].toArray(); QJsonArray filter_array = tmp_variable["filter"].toArray();
for (int k = 0; k < filter_array.size(); k++) { for (int k = 0; k < filter_array.size(); k++) {
QJsonObject filter_ele = filter_array[k].toObject(); QJsonObject filter_ele = filter_array[k].toObject();
variable->filter_[k].low = filter_ele["low"].toInt(); variable->filter_[k].low = filter_ele["low"].toInt();

View File

@ -87,7 +87,7 @@ MainWindow::MainWindow(QWidget *parent)
connect(btnGroup_slot, SIGNAL(buttonClicked(QAbstractButton *)), this, SLOT(OnButtonGroup(QAbstractButton *))); connect(btnGroup_slot, SIGNAL(buttonClicked(QAbstractButton *)), this, SLOT(OnButtonGroup(QAbstractButton *)));
QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini", QSettings::IniFormat); QSettings settingsread(QCoreApplication::applicationDirPath() + "\\config\\config.ini", QSettings::IniFormat);
g_strServerIp = settingsread.value("Server/IP").toString(); g_strServerIp = settingsread.value("Server/IP").toString();
connectServer(); //connectServer();
// 设置自定义日志处理函数 // 设置自定义日志处理函数
#ifndef QT_DEBUG #ifndef QT_DEBUG
qInstallMessageHandler(messageHandler); qInstallMessageHandler(messageHandler);

View File

@ -142,7 +142,7 @@ void Radial::Init() {
void Radial::on_pushButton_confirm_clicked() { void Radial::on_pushButton_confirm_clicked() {
std::shared_ptr<CardBase> base_ptr = ConfigMgr::Instance()->GetSlotPtr(slot_no); std::shared_ptr<CardBase> base_ptr = ConfigMgr::Instance()->GetSlotPtr(slot_no);
if (base_ptr == nullptr) { if (base_ptr == nullptr) {
qCritical() << "[Acceleration::Init] should not be here"; qCritical() << "[Radial::Init] should not be here";
return; return;
} }
std::shared_ptr<VibrationData> ptr = std::dynamic_pointer_cast<VibrationData>(base_ptr); std::shared_ptr<VibrationData> ptr = std::dynamic_pointer_cast<VibrationData>(base_ptr);

View File

@ -115,7 +115,7 @@ void RelaySetting::onRadioButtonClicked(QAbstractButton *button) {
} }
PackageHead header = { {0xAA, 0x55, 0xAA}, kRelaySetting, sizeof(RelaySettingReq), 0, {} }; PackageHead header = { {0xAA, 0x55, 0xAA}, kRelaySetting, sizeof(RelaySettingReq), 0, {} };
int slot = ui->comboBox_slot->currentText().toInt(); int slot = ui->comboBox_slot->currentText().toInt();
qDebug() << "slot" << slot << endl; qDebug() << "slot" << slot ;
RelaySettingReq relay_setting_req; RelaySettingReq relay_setting_req;
if (slot == 0) { if (slot == 0) {
relay_setting_req.card_id = 0xFF; relay_setting_req.card_id = 0xFF;
@ -123,7 +123,7 @@ void RelaySetting::onRadioButtonClicked(QAbstractButton *button) {
relay_setting_req.card_id = slot & 0xFF; relay_setting_req.card_id = slot & 0xFF;
} }
QString led_id = group->objectName().mid(12); QString led_id = group->objectName().mid(12);
qDebug() << "led_id" << led_id << endl; qDebug() << "led_id" << led_id ;
if (led_id == "OK") { if (led_id == "OK") {
relay_setting_req.led_id = 0xff; relay_setting_req.led_id = 0xff;
} else if (led_id == "TX_RX") { } else if (led_id == "TX_RX") {
@ -168,9 +168,9 @@ void RelaySetting::onRadioButtonClicked(QAbstractButton *button) {
PackageHead header; PackageHead header;
RelaySettingRsp relay_setting_rsp; RelaySettingRsp relay_setting_rsp;
memcpy(&header, response.data(), sizeof(PackageHead)); memcpy(&header, response.data(), sizeof(PackageHead));
qDebug() << "header len" << header.len << endl; qDebug() << "header len" << header.len ;
memcpy(&relay_setting_rsp, response.data() + sizeof(PackageHead), sizeof(RelaySettingRsp)); memcpy(&relay_setting_rsp, response.data() + sizeof(PackageHead), sizeof(RelaySettingRsp));
qDebug() << "relay_setting_rsp code" << relay_setting_rsp.code << endl; qDebug() << "relay_setting_rsp code" << relay_setting_rsp.code ;
} }
} }
@ -184,7 +184,7 @@ void RelaySetting::on_pushButton_status_clicked() {
} }
PackageHead header = { {0xAA, 0x55, 0xAA}, kRelayStatus, sizeof(RelaySettingReq), 0, {} }; PackageHead header = { {0xAA, 0x55, 0xAA}, kRelayStatus, sizeof(RelaySettingReq), 0, {} };
int slot = ui->comboBox_slot->currentText().toInt(); int slot = ui->comboBox_slot->currentText().toInt();
qDebug() << "slot" << slot << endl; qDebug() << "slot" << slot ;
RelayStatusReq relay_status_req; RelayStatusReq relay_status_req;
if (slot == 0) { if (slot == 0) {
relay_status_req.card_id = 0xFF; relay_status_req.card_id = 0xFF;
@ -202,9 +202,9 @@ void RelaySetting::on_pushButton_status_clicked() {
PackageHead header; PackageHead header;
RelayStatusRsp relay_status_rsp; RelayStatusRsp relay_status_rsp;
memcpy(&header, response.data(), sizeof(PackageHead)); memcpy(&header, response.data(), sizeof(PackageHead));
qDebug() << "header len" << header.len << endl; qDebug() << "header len" << header.len ;
memcpy(&relay_status_rsp, response.data() + sizeof(PackageHead), sizeof(RelayStatusRsp)); memcpy(&relay_status_rsp, response.data() + sizeof(PackageHead), sizeof(RelayStatusRsp));
qDebug() << "relay_setting_rsp status" << relay_status_rsp.status << endl; qDebug() << "relay_setting_rsp status" << relay_status_rsp.status ;
if (relay_status_rsp.status == 7) { if (relay_status_rsp.status == 7) {
ui->label_status->setText("测试"); ui->label_status->setText("测试");
} else if (relay_status_rsp.status == 8) { } else if (relay_status_rsp.status == 8) {

View File

@ -1,11 +1,67 @@
#include "Setpoint.h" #include "Setpoint.h"
#include "ui_Setpoint.h" #include "ui_Setpoint.h"
#include "rangeslider.h"
Setpoint::Setpoint(QWidget *parent) : Setpoint::Setpoint(QWidget *parent) :
QWidget(parent), QWidget(parent),
ui(new Ui::Setpoint) ui(new Ui::Setpoint)
{ {
ui->setupUi(this); ui->setupUi(this);
QVBoxLayout *layout_direct = new QVBoxLayout(ui->widget_direct);
RangeSlider *slider_direct = new RangeSlider;
layout_direct->addWidget(slider_direct);
QVBoxLayout *layout_1x_ampl = new QVBoxLayout(ui->widget_1x_ampl);
RangeSlider *slider_1x_ampl = new RangeSlider;
layout_1x_ampl->addWidget(slider_1x_ampl);
QVBoxLayout *layout_2x_ampl = new QVBoxLayout(ui->widget_2x_ampl);
RangeSlider *slider_2x_ampl = new RangeSlider;
layout_2x_ampl->addWidget(slider_2x_ampl);
QVBoxLayout *layout_danger = new QVBoxLayout(ui->widget_danger);
RangeSlider *slider_danger = new RangeSlider;
layout_danger->addWidget(slider_danger);
QObject::connect(ui->lineEdit_direct_upper, &QLineEdit::editingFinished, [&]() {
slider_direct->setUpperValue(ui->lineEdit_direct_upper->text().toInt());
});
QObject::connect(slider_direct, &RangeSlider::rangeChanged, [&](int low, int high) {
ui->lineEdit_direct_upper->setText(QString::number(high));
});
QObject::connect(slider_1x_ampl, &RangeSlider::rangeChanged, [&](int low, int high) {
ui->lineEdit_1x_ampl_upper->setText(QString::number(high));
ui->lineEdit_1x_ampl_lower->setText(QString::number(low));
});
QObject::connect(ui->lineEdit_1x_ampl_upper, &QLineEdit::editingFinished, [&]() {
slider_1x_ampl->setUpperValue(ui->lineEdit_1x_ampl_upper->text().toInt());
});
QObject::connect(ui->lineEdit_1x_ampl_lower, &QLineEdit::editingFinished, [&]() {
slider_1x_ampl->setLowerValue(ui->lineEdit_1x_ampl_lower->text().toInt());
});
QObject::connect(slider_2x_ampl, &RangeSlider::rangeChanged, [&](int low, int high) {
ui->lineEdit_2x_ampl_upper->setText(QString::number(high));
ui->lineEdit_2x_ampl_lower->setText(QString::number(low));
});
QObject::connect(ui->lineEdit_2x_ampl_upper, &QLineEdit::editingFinished, [&]() {
slider_1x_ampl->setUpperValue(ui->lineEdit_2x_ampl_upper->text().toInt());
});
QObject::connect(ui->lineEdit_2x_ampl_lower, &QLineEdit::editingFinished, [&]() {
slider_1x_ampl->setLowerValue(ui->lineEdit_2x_ampl_lower->text().toInt());
});
QObject::connect(slider_danger, &RangeSlider::rangeChanged, [&](int low, int high) {
ui->lineEdit_danger_upper->setText(QString::number(high));
});
QObject::connect(ui->lineEdit_danger_upper, &QLineEdit::editingFinished, [&]() {
slider_danger->setUpperValue(ui->lineEdit_danger_upper->text().toInt());
});
} }
Setpoint::~Setpoint() Setpoint::~Setpoint()

View File

@ -45,66 +45,74 @@
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QCheckBox" name="checkBox_5"> <widget class="QLabel" name="label_19">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>30</x> <x>20</x>
<y>390</y> <y>72</y>
<width>21</width> <width>36</width>
<height>16</height> <height>16</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string/> <string>mil pp</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_17"> <widget class="QCheckBox" name="checkBox_danger">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>20</x> <x>20</x>
<y>140</y> <y>415</y>
<width>54</width> <width>47</width>
<height>231</height> <height>16</height>
</rect>
</property>
<property name="text">
<string> 刻度</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_5">
<property name="geometry">
<rect>
<x>20</x>
<y>100</y>
<width>41</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_18">
<property name="geometry">
<rect>
<x>23</x>
<y>420</y>
<width>61</width>
<height>20</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>启用</string> <string>启用</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_19"> <widget class="QLineEdit" name="lineEdit_danger_upper">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>20</x> <x>12</x>
<y>70</y> <y>90</y>
<width>54</width> <width>50</width>
<height>12</height> <height>20</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="minimumSize">
<string>mil pp</string> <size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
<widget class="QWidget" name="widget_danger" native="true">
<property name="geometry">
<rect>
<x>0</x>
<y>116</y>
<width>80</width>
<height>260</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>260</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>260</height>
</size>
</property> </property>
</widget> </widget>
</widget> </widget>
@ -187,231 +195,308 @@
<property name="title"> <property name="title">
<string>告警 / 警报 1</string> <string>告警 / 警报 1</string>
</property> </property>
<widget class="QLabel" name="label_21"> <widget class="QWidget" name="widget_1x_ampl" native="true">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>20</x> <x>100</x>
<y>40</y> <y>110</y>
<width>54</width> <width>80</width>
<height>12</height> <height>260</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="minimumSize">
<string>直接值</string> <size>
<width>80</width>
<height>260</height>
</size>
</property> </property>
</widget> <property name="maximumSize">
<widget class="QLabel" name="label_22"> <size>
<property name="geometry"> <width>80</width>
<rect> <height>260</height>
<x>20</x> </size>
<y>70</y>
<width>54</width>
<height>12</height>
</rect>
</property>
<property name="text">
<string>mil pp</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_6">
<property name="geometry">
<rect>
<x>20</x>
<y>100</y>
<width>41</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_6">
<property name="geometry">
<rect>
<x>30</x>
<y>390</y>
<width>21</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="label_23">
<property name="geometry">
<rect>
<x>23</x>
<y>420</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>启用</string>
</property>
</widget>
<widget class="QLabel" name="label_24">
<property name="geometry">
<rect>
<x>20</x>
<y>140</y>
<width>54</width>
<height>231</height>
</rect>
</property>
<property name="text">
<string> 刻度</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_7">
<property name="geometry">
<rect>
<x>120</x>
<y>390</y>
<width>21</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="label_25">
<property name="geometry">
<rect>
<x>110</x>
<y>70</y>
<width>54</width>
<height>12</height>
</rect>
</property>
<property name="text">
<string>mil pp</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_7">
<property name="geometry">
<rect>
<x>110</x>
<y>100</y>
<width>41</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_26">
<property name="geometry">
<rect>
<x>110</x>
<y>140</y>
<width>54</width>
<height>231</height>
</rect>
</property>
<property name="text">
<string> 刻度</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_27"> <widget class="QLabel" name="label_27">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>110</x> <x>121</x>
<y>40</y> <y>41</y>
<width>54</width> <width>54</width>
<height>12</height> <height>16</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>1倍频幅值</string> <string>1倍频幅值</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_28"> <widget class="QLineEdit" name="lineEdit_1x_ampl_upper">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>113</x> <x>121</x>
<y>420</y> <y>77</y>
<width>61</width> <width>50</width>
<height>20</height> <height>20</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="minimumSize">
<string>启用</string> <size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_29"> <widget class="QLabel" name="label_25">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>190</x> <x>130</x>
<y>420</y> <y>59</y>
<width>61</width> <width>36</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>启用</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_8">
<property name="geometry">
<rect>
<x>197</x>
<y>390</y>
<width>21</width>
<height>16</height> <height>16</height>
</rect> </rect>
</property> </property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="label_30">
<property name="geometry">
<rect>
<x>187</x>
<y>140</y>
<width>54</width>
<height>231</height>
</rect>
</property>
<property name="text">
<string> 刻度</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_8">
<property name="geometry">
<rect>
<x>187</x>
<y>100</y>
<width>41</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_31">
<property name="geometry">
<rect>
<x>187</x>
<y>70</y>
<width>54</width>
<height>12</height>
</rect>
</property>
<property name="text"> <property name="text">
<string>mil pp</string> <string>mil pp</string>
</property> </property>
</widget> </widget>
<widget class="QLineEdit" name="lineEdit_1x_ampl_lower">
<property name="geometry">
<rect>
<x>120</x>
<y>380</y>
<width>50</width>
<height>20</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_1x_ampl">
<property name="geometry">
<rect>
<x>121</x>
<y>420</y>
<width>47</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>启用</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_2x_ampl">
<property name="geometry">
<rect>
<x>221</x>
<y>420</y>
<width>47</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>启用</string>
</property>
</widget>
<widget class="QLabel" name="label_32"> <widget class="QLabel" name="label_32">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>187</x> <x>221</x>
<y>40</y> <y>41</y>
<width>54</width> <width>54</width>
<height>12</height> <height>16</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>2倍频幅值</string> <string>2倍频幅值</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_31">
<property name="geometry">
<rect>
<x>230</x>
<y>59</y>
<width>36</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>mil pp</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_2x_ampl_upper">
<property name="geometry">
<rect>
<x>221</x>
<y>77</y>
<width>50</width>
<height>20</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
<widget class="QWidget" name="widget_2x_ampl" native="true">
<property name="geometry">
<rect>
<x>200</x>
<y>110</y>
<width>80</width>
<height>260</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>260</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>260</height>
</size>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_2x_ampl_lower">
<property name="geometry">
<rect>
<x>220</x>
<y>380</y>
<width>50</width>
<height>20</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_direct_upper">
<property name="geometry">
<rect>
<x>30</x>
<y>80</y>
<width>50</width>
<height>20</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QWidget" name="widget_direct" native="true">
<property name="geometry">
<rect>
<x>10</x>
<y>107</y>
<width>80</width>
<height>260</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>260</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>260</height>
</size>
</property>
</widget>
<widget class="QLabel" name="label_21">
<property name="geometry">
<rect>
<x>40</x>
<y>40</y>
<width>36</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>直接值</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_22">
<property name="geometry">
<rect>
<x>40</x>
<y>60</y>
<width>36</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>mil pp</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_direct">
<property name="geometry">
<rect>
<x>30</x>
<y>420</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>启用</string>
</property>
</widget>
</widget> </widget>
<widget class="QToolButton" name="toolButton_3"> <widget class="QToolButton" name="toolButton_3">
<property name="geometry"> <property name="geometry">