#include "mainwindow.h" #include "modbus-private.h" #include "ui_mainwindow.h" #include "appproto.h" #include "appproto_english.h" #include "delegate.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "proto/battery.pb.h" #include "proto/battery_english.pb.h" #include "chartpaint.h" #include #include #include #include #include #include #include #include "modbusrtu.h" #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); this->init(); this->setMenuStyle(); trubleListInit(); m_AppProto = new AppProto; m_AppProto_English = new Appproto_English; connect(ui->tabWidget_paraset, SIGNAL(currentChanged(int)), this, SLOT(on_tabChanged(int))); connect(ui->comboBoxBCUSelect, SIGNAL(currentIndexChanged(int)), this, SLOT(on_comBoxBCUSelect(int))); } MainWindow::~MainWindow() { delete ui; } void MainWindow::init() { /* 设置标题 */ setWindowTitle("Battery Monitor"); /* 设置Logo */ setWindowIcon(QIcon(":/Image/icon.png")); // this->showMaximized(); /* 读取配置文件 */ ini = new QSettings("config.ini", QSettings::IniFormat); if(QFile::exists("config.ini")) { /* 状态栏显示 */ if(ini->value("Window/ShowStatusbar") == "true") { statusBar()->show(); ui->actionShow_Status_bar->setChecked(true); } else { statusBar()->hide(); ui->actionShow_Status_bar->setChecked(false); } } else{ ini->setValue("System/Language", LANGUAGE_ENG); ini->setValue("Window/ShowStatusbar", true); ini->sync(); } /* 设置初始界面语言 */ if(ini->value("System/Language") == LANGUAGE_ENG) { QTranslator trans; qDebug() << "ini in the mainwindow :" << ini->value("System/Language"); trans.load(":/Language/BatteryMonitor_ENG.qm"); QApplication::installTranslator(&trans); ui->retranslateUi(this); } else if(ini->value("System/Language") == LANGUAGE_CHN) { qDebug() << "ini in the mainwindow :" << ini->value("System/Language"); QTranslator trans; trans.load(":/Language/BatteryMonitor_CHN.qm"); QApplication::installTranslator(&trans); ui->retranslateUi(this); } // connect(ui->actionChinese, &QAction::triggered, this, [=]{ // ini->setValue("System/Language", LANGUAGE_CHN); // ini->sync(); // QTranslator trans; // trans.load(":/Language/BatteryMonitor_CHN.qm"); // QApplication::installTranslator(&trans); // ui->retranslateUi(this); // }); // connect(ui->actionEnglish, &QAction::triggered, this, [=]{ // ini->setValue("System/Language", LANGUAGE_ENG); // ini->sync(); // QTranslator trans; // trans.load(":/Language/BatteryMonitor_ENG.qm"); // QApplication::installTranslator(&trans); // ui->retranslateUi(this); // }); //历史报警标志位初始化为0 for (int i = 0; i < 56; i++) { trouble_list_flag.append(0); } /* 状态栏设置 */ statusBarConnectedIcon = new QLabel(); statusBarConnectedType = new QLabel(); statusBarCompany = new QLabel(); statusBarBcu = new QLabel(); statusBarVersion = new QLabel(); statusBarConnectedIcon->setPixmap(QPixmap(QIcon(":/Image/connected1.png").pixmap(QSize(24, 24)))); statusBarConnectedType->setText("RS485"); statusBarCompany->setText("BLUESUN"); statusBarBcu->setText("Current BCU: BCU01"); statusBarVersion->setText("UpperComputer Version : 1.0.0 "); ui->statusbar->addWidget(statusBarConnectedIcon); ui->statusbar->addWidget(statusBarConnectedType); ui->statusbar->addWidget(statusBarVersion); ui->statusbar->addWidget(statusBarBcu); ui->statusbar->addPermanentWidget(statusBarCompany); /* 菜单栏设置 */ connect(ui->actionExit, &QAction::triggered, this, [=]{ this->close(); }); connect(ui->actionConnect, &QAction::triggered, this, [=]{ }); connect(ui->actionDisconnect, &QAction::triggered, this, [=]{ }); connect(ui->actionAuto_Connect, &QAction::triggered, this, [=]{ }); connect(ui->actionShow_Status_bar, &QAction::triggered, this, [=]{ if(ini->value("Window/ShowStatusbar") == true) { this->statusBar()->hide(); ui->actionShow_Status_bar->setChecked(false); ini->setValue("Window/ShowStatusbar", false); ini->sync(); } else { this->statusBar()->show(); ui->actionShow_Status_bar->setChecked(true); ini->setValue("Window/ShowStatusbar", true); ini->sync(); } }); /* 设置初始页 */ ui->stackedWidget->setCurrentIndex(PAGE_HOME); /* Debug页面槽函数 */ connect(ui->pageDebugBtnClear, &QPushButton::pressed, this, [=]{ ui->pageDebugTextBrowser->clear(); }); // connect(ui->pageDebugCheckBoxSaveLog, &QCheckBox::stateChanged, this, [=]{ // if(ui->pageDebugCheckBoxSaveLog->isChecked()) { // pageDebugLogFlag = true; // QString filename = QFileDialog::getSaveFileName(this, "Save log", "Communication log", "Log Files (*.txt);;All Files (*)"); // logFile = new QFile(filename); // if (logFile->open(QIODevice::Append | QIODevice::Text)) { // } // } // else { // pageDebugLogFlag = false; // logFile->close(); // } // }); //初始化batt bat = new batt(); //初始化绘制柱状图 // chartPat = new ChartPaint(); // //电量充,电量放,时间充,时间放 // // int array[] = {20, 30, 12, 12}; // // int array1[] = {1000, 1200, 500, 600}; // // int array_day_chart[] = {base_info1_45[39], base_info1_45[41], base_info1_45[42], base_info1_45[43]}; // // QChartView *chartView = chartPat->Paint("日", array); // // QChartView *chartView1 = chartPat->Paint("累计", array1); // gridLayout = new QGridLayout(); // QHBoxLayout *hBoxLayout = new QHBoxLayout(); // hBoxLayout->addLayout(gridLayout); // ui->tab_charts->setLayout(hBoxLayout); //绘制单体表格 // sglChartInit(7); // ui->groupBox_color_sgl->setStyleSheet("QGroupBox { border: none; }"); // ui->scrollArea_sgl_charts->setFrameShape(QFrame::NoFrame); // ui->scrollAreaChart->setFrameShape(QFrame::NoFrame); // ui->scrollAreaChart->setStyleSheet("background-color: #FFFFFF;"); //设置背景颜色为纯白色 ui->scrollArea_trouble->setStyleSheet("border: none;"); ui->widgetControl->setStyleSheet("background-color: #FFFFFF;"); ui->groupBox->setStyleSheet("background-color: #FFFFFF;"); ui->groupBox_trouble_control->setStyleSheet("background-color: #FFFFFF;"); // ui->groupBox_chart->setStyleSheet("background-color: #FFFFFF;"); ui->groupBox_class_color->setStyleSheet("QGroupBox { border: none; }"); ui->widget_historyAlarm->setStyleSheet("background-color: #FFFFFF;"); // ui->widget_BCUSelect->setStyleSheet("background-color: #FFFFFF;"); ui->pageHome->setStyleSheet("background-color: #FFFFFF;"); ui->comboBoxBCUSelect->setStyleSheet("background-color: #F8F8FF;"); ui->pageBatteryStackWidget->setStyleSheet("background-color: #FFFFFF;"); // ui->comboBoxBCUSelect->setStyleSheet("QComboBox QAbstractItemView { background-color: #f0f0f0;}"); // ui->BCU_DIDO->setStyleSheet("background-color: #FFFFFF;"); // ui->BCU_alarm->setStyleSheet("background-color: #FFFFFF;"); ui->BCU_statisInfo->setStyleSheet("background-color: #FFFFFF;"); ui->BCU_sysInfo->setStyleSheet("background-color: #FFFFFF;"); //设置按钮的提示文本 ui->btnHome->setToolTip("概述信息(Overview Information)"); ui->btnBattery->setToolTip("详细信息(Detailed Information)"); ui->btnParaSet->setToolTip("参数设置(Parameter Settings)"); ui->btnDebug->setToolTip("报文信息(Message Information)"); ui->btnFlash->setToolTip("升级调试(Upgrade Debugging)"); // ui->btnRecord->setToolTip("记录导出"); //设置初始颜色 // ui->close_color->setStyleSheet("QLabel{" // "background-image: url(:/Image/trouble-background-normal.png);" // "border: 1px solid gray;" // "}"); // ui->open_color->setStyleSheet("QLabel{" // "background-image: url(:/Image/trouble-background-default.png);" // "border: 1px solid gray;" // "}"); ui->relay_negative->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->relay_positive->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->relay_precharge->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->relay_disconnector->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->color_trouble_1->setStyleSheet("background-image: url(:/Image/trouble-background-1.png);"); ui->color_trouble_2->setStyleSheet("background-image: url(:/Image/trouble-background-2.png);"); ui->color_trouble_3->setStyleSheet("background-image: url(:/Image/trouble-background-3.png);"); ui->color_trouble_normal->setStyleSheet("background-image: url(:/Image/trouble-background-normal.png);"); // ui->color_sgl_high->setStyleSheet("background-color: rgb(255, 0, 0);"); // ui->color_sgl_low->setStyleSheet("background-color: rgb(0, 255, 0);"); // ui->color_equilibrium->setStyleSheet("background-color: rgb(0, 0, 200);"); // ui->color_short_circuit->setStyleSheet("background-color: rgb(255, 165, 0);"); // ui->groupBox_color_sgl->setStyleSheet("QGroupBox { border: none; }"); ui->label_trouble_1->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_2->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_3->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_4->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_5->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_6->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_7->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_8->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_9->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_10->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_11->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_12->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_13->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_14->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_15->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_16->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_17->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_18->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_19->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_20->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_21->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_22->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_23->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_24->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_25->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_26->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_27->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_28->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_29->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_30->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_31->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_32->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_33->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_34->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_35->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_36->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_37->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_38->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_39->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_40->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_41->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_42->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_43->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_44->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_45->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_46->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_47->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_48->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_49->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_50->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_51->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_52->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_53->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_54->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_55->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); ui->label_trouble_56->setStyleSheet("QLabel{" "background-image: url(:/Image/trouble-background-default.png);" "border: 1px solid gray;" "}"); // QStandardItemModel *model = new QStandardItemModel(ui->treeViewBCUbmu); // // 创建一级目录项 // QStandardItem *rootItem = new QStandardItem("BCU01"); // // 设置一级目录项的字体为加粗 // QFont boldFont = rootItem->font(); // boldFont.setBold(true); // rootItem->setFont(boldFont); // model->appendRow(rootItem); // ui->tabWidgetBCU->setCurrentIndex(0); // ui->tabWidgetBMU->setCurrentIndex(0); // connect(ui->treeViewBCUbmu, &QTreeView::clicked, [=](const QModelIndex index){ // if(index.parent().isValid()) // { // qDebug() << "BMU" << index.column() << index.row(); // ui->pageBatteryStackWidget->setCurrentIndex(1); // } // else // { // qDebug() << "BCU" << index.column() << index.row(); // ui->pageBatteryStackWidget->setCurrentIndex(0); // } // }); // for (int i = 1; i <= 26; ++i) { // QString bmuName = QString("BMU%1").arg(i); // QStandardItem *bmuItem = new QStandardItem(bmuName); // rootItem->appendRow(bmuItem); // } // ui->treeViewBCUbmu->setModel(model); // ui->treeViewBCUbmu->setHeaderHidden(true); // ui->treeViewBCUbmu->setAnimated(true); // ui->treeViewBCUbmu->expandAll(); // ui->treeViewBCUbmu->setEditTriggers(QAbstractItemView::NoEditTriggers); // ui->treeViewBCUbmu->show(); } void MainWindow::sglChartInit(int bat_count) { // ui->tabWidget_sgl_info->setCurrentWidget(ui->tab_vol); QStringList labels = { "Bmu", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", "C11", "C12", "C13", "C14", "C15", "C16", }; //单体电压 QTableWidget *page_paraset_sys_sgl_vol = new QTableWidget(bat_count, 17); page_paraset_sys_sgl_vol->horizontalHeader()->setDefaultSectionSize(40); page_paraset_sys_sgl_vol->verticalHeader()->setDefaultSectionSize(30); page_paraset_sys_sgl_vol->verticalHeader()->setVisible(false); page_paraset_sys_sgl_vol->setHorizontalHeaderLabels(QStringList(labels)); //row的索引比row的值要小1 for (int row = 0; row < page_paraset_sys_sgl_vol->rowCount(); ++row) { for (int col = 0; col < page_paraset_sys_sgl_vol->columnCount(); ++col) { if (col == 0) { QLabel *label = new QLabel(QString::number(row+1), this); label->setAlignment(Qt::AlignCenter); QFont font("黑体", 10); label->setFont(font); label->setFixedSize(40, 30); page_paraset_sys_sgl_vol->setCellWidget(row, col, label); } if(col >= 1) { QLabel *label = new QLabel(this); labelListVol.append(label); // QFont font("黑体", 10); // label->setFont(font); label->setFixedSize(40, 30); page_paraset_sys_sgl_vol->setCellWidget(row, col, label); } } } //单体温度 QTableWidget *page_paraset_sys_sgl_temp = new QTableWidget(bat_count, 17); page_paraset_sys_sgl_temp->horizontalHeader()->setDefaultSectionSize(40); page_paraset_sys_sgl_temp->verticalHeader()->setDefaultSectionSize(30); page_paraset_sys_sgl_temp->verticalHeader()->setVisible(false); page_paraset_sys_sgl_temp->setHorizontalHeaderLabels(QStringList(labels)); //row的索引比row的值要小1 for (int row = 0; row < page_paraset_sys_sgl_temp->rowCount(); ++row) { for (int col = 0; col < page_paraset_sys_sgl_temp->columnCount(); ++col) { if (col == 0) { QLabel *label = new QLabel(QString::number(row+1), this); label->setAlignment(Qt::AlignCenter); QFont font("黑体", 10); label->setFont(font); label->setFixedSize(40, 30); page_paraset_sys_sgl_temp->setCellWidget(row, col, label); } if(col >= 1) { QLabel *label = new QLabel(this); labelListTempt.append(label); // QFont font("黑体", 10); // label->setFont(font); label->setFixedSize(40, 30); page_paraset_sys_sgl_temp->setCellWidget(row, col, label); } } } QHBoxLayout *hBoxLayout_vol = new QHBoxLayout(); QHBoxLayout *hBoxLayout_tempt = new QHBoxLayout(); hBoxLayout_vol->addWidget(page_paraset_sys_sgl_vol); hBoxLayout_tempt->addWidget(page_paraset_sys_sgl_temp); // ui->tab_vol->setLayout(hBoxLayout_vol); // ui->tab_tempt->setLayout(hBoxLayout_tempt); } void MainWindow::setMenuStyle() { /* 设置菜单按钮样式表 */ connect(ui->btnHome, &QPushButton::pressed, this, [=]{ ui->stackedWidget->setCurrentIndex(PAGE_HOME); ui->btnHome->setStyleSheet("#btnHome{" "background-image: url(:/Image/home2.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnBattery->setStyleSheet("#btnBattery{" "background-image: url(:/Image/battery.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnBattery::hover{" "background-image: url(:/Image/battery1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" ); ui->btnParaSet->setStyleSheet("#btnParaSet{" "background-image: url(:/Image/paraSet.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnParaSet::hover{" "background-image: url(:/Image/paraSet1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnDebug->setStyleSheet("#btnDebug{" "background-image: url(:/Image/debug.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnDebug::hover{" "background-image: url(:/Image/debug1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnFlash->setStyleSheet("#btnFlash{" "background-image: url(:/Image/hardware-line.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnFlash::hover{" "background-image: url(:/Image/hardware-line1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); // ui->btnSetup->setStyleSheet("#btnSetup{" // "background-image: url(:/Image/advance-set-line.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnSetup::hover{" // "background-image: url(:/Image/advance-set-line1.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); // ui->btnRecord->setStyleSheet("#btnRecord{" // "background-image: url(:/Image/record-out-black.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnRecord::hover{" // "background-image: url(:/Image/record-out-gray.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); }); connect(ui->btnBattery, &QPushButton::pressed, this, [=]{ ui->stackedWidget->setCurrentIndex(PAGE_BATTERY); ui->btnBattery->setStyleSheet("#btnBattery{" "background-image: url(:/Image/battery2.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnHome->setStyleSheet("#btnHome{" "background-image: url(:/Image/home.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnHome::hover{" "background-image: url(:/Image/home1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnParaSet->setStyleSheet("#btnParaSet{" "background-image: url(:/Image/paraSet.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnParaSet::hover{" "background-image: url(:/Image/paraSet1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnDebug->setStyleSheet("#btnDebug{" "background-image: url(:/Image/debug.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnDebug::hover{" "background-image: url(:/Image/debug1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnFlash->setStyleSheet("#btnFlash{" "background-image: url(:/Image/hardware-line.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnFlash::hover{" "background-image: url(:/Image/hardware-line1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); // ui->btnSetup->setStyleSheet("#btnSetup{" // "background-image: url(:/Image/advance-set-line.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnSetup::hover{" // "background-image: url(:/Image/advance-set-line1.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); // ui->btnRecord->setStyleSheet("#btnRecord{" // "background-image: url(:/Image/record-out-black.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnRecord::hover{" // "background-image: url(:/Image/record-out-gray.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); }); connect(ui->btnParaSet, &QPushButton::pressed, this, [=]{ ui->stackedWidget->setCurrentIndex(PAGE_PARASET); ui->btnParaSet->setStyleSheet("#btnParaSet{" "background-image: url(:/Image/paraSet2.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnHome->setStyleSheet("#btnHome{" "background-image: url(:/Image/home.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnHome::hover{" "background-image: url(:/Image/home1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnBattery->setStyleSheet("#btnBattery{" "background-image: url(:/Image/battery.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnBattery::hover{" "background-image: url(:/Image/battery1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnDebug->setStyleSheet("#btnDebug{" "background-image: url(:/Image/debug.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnDebug::hover{" "background-image: url(:/Image/debug1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnFlash->setStyleSheet("#btnFlash{" "background-image: url(:/Image/hardware-line.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnFlash::hover{" "background-image: url(:/Image/hardware-line1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); // ui->btnSetup->setStyleSheet("#btnSetup{" // "background-image: url(:/Image/advance-set-line.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnSetup::hover{" // "background-image: url(:/Image/advance-set-line1.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); // ui->btnRecord->setStyleSheet("#btnRecord{" // "background-image: url(:/Image/record-out-black.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnRecord::hover{" // "background-image: url(:/Image/record-out-gray.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); }); connect(ui->btnDebug, &QPushButton::pressed, this, [=]{ ui->stackedWidget->setCurrentIndex(PAGE_DEBUG); ui->btnDebug->setStyleSheet("#btnDebug{" "background-image: url(:/Image/debug2.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnHome->setStyleSheet("#btnHome{" "background-image: url(:/Image/home.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnHome::hover{" "background-image: url(:/Image/home1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnBattery->setStyleSheet("#btnBattery{" "background-image: url(:/Image/battery.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnBattery::hover{" "background-image: url(:/Image/battery1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnParaSet->setStyleSheet("#btnParaSet{" "background-image: url(:/Image/paraSet.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnParaSet::hover{" "background-image: url(:/Image/paraSet1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnFlash->setStyleSheet("#btnFlash{" "background-image: url(:/Image/hardware-line.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnFlash::hover{" "background-image: url(:/Image/hardware-line1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); // ui->btnSetup->setStyleSheet("#btnSetup{" // "background-image: url(:/Image/advance-set-line.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnSetup::hover{" // "background-image: url(:/Image/advance-set-line1.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); // ui->btnRecord->setStyleSheet("#btnRecord{" // "background-image: url(:/Image/record-out-black.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnRecord::hover{" // "background-image: url(:/Image/record-out-gray.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); }); connect(ui->btnFlash, &QPushButton::pressed, this, [=]{ ui->stackedWidget->setCurrentIndex(PAGE_FLASH); ui->btnFlash->setStyleSheet("#btnFlash{" "background-image: url(:/Image/hardware-line2.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnHome->setStyleSheet("#btnHome{" "background-image: url(:/Image/home.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnHome::hover{" "background-image: url(:/Image/home1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnBattery->setStyleSheet("#btnBattery{" "background-image: url(:/Image/battery.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnBattery::hover{" "background-image: url(:/Image/battery1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnParaSet->setStyleSheet("#btnParaSet{" "background-image: url(:/Image/paraSet.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnParaSet::hover{" "background-image: url(:/Image/paraSet1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); ui->btnDebug->setStyleSheet("#btnDebug{" "background-image: url(:/Image/debug.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}" "#btnDebug::hover{" "background-image: url(:/Image/debug1.png);" "background-repeat: no-repeat;" "background-position: center;" "background-color: rgba(255, 255, 255, 0);" "}"); // ui->btnSetup->setStyleSheet("#btnSetup{" // "background-image: url(:/Image/advance-set-line.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}" // "#btnSetup::hover{" // "background-image: url(:/Image/advance-set-line1.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); }); // connect(ui->btnSetup, &QPushButton::pressed, this, [=]{ // emit showLogin(); // ui->btnSetup->setStyleSheet("#btnSetup{" // "background-image: url(:/Image/advance-set-line2.png);" // "background-repeat: no-repeat;" // "background-position: center;" // "background-color: rgba(255, 255, 255, 0);" // "}"); // }); ui->btn_close_neg->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btn_close_pos->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btn_close_prechg->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btn_open_prechg->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btn_open_neg->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btn_open_pos->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->pageParaSetRead->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->pageParaSetWrite->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btnGetVersion->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btnStartUpgrade->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btnImport->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->btnSendData->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); ui->pageDebugBtnClear->setStyleSheet("QPushButton { background-color: #87CEFA; color: white; }" "QPushButton:hover { background-color: #77B5D6; color: white; }"); } void MainWindow::slot_pageDebugDisplayMessage(QByteArray byteArray, int dataType, uint16_t *data) { // qDebug("#1"); if(ui->pageDebugCheckBoxDisplay->isChecked() == true) { QString timeStr = QString(QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss.zzz] ")); QString tmpStr; QString showStr; for(int i = 0; i < byteArray.size(); i++) { tmpStr += QString("%1 ").arg((quint8)byteArray.at(i), 2, 16, QChar('0')); // QString hexString = QString::number(tmpStr, 16); // qDebug() << "recvdata:" << tmpStr.toInt(&ok, 16); } if(dataType == TypeRecvData) { if(ui->pageDebugCheckBoxStarmp->isChecked()) { showStr = timeStr + "Rx: " + tmpStr; } else { showStr = "Rx: " + tmpStr; } // if(pageDebugLogFlag == true) { // if(logFile->isOpen()) { // QTextStream textStream(logFile); // textStream << timeStr + "Rx: " + tmpStr + '\n'; // } // } } else if(dataType == TypeSendData) { if(ui->pageDebugCheckBoxStarmp->isChecked()) { showStr = timeStr + "Tx: " + tmpStr; } else { showStr = "Tx: " + tmpStr; } // if(pageDebugLogFlag == true) { // if(logFile->isOpen()) { // QTextStream textStream(logFile); // textStream << timeStr + "Rx: " + tmpStr + '\n'; // } // } } ui->pageDebugTextBrowser->append(showStr); } // qDebug("#2"); } void MainWindow::slot_pageHomeSglDataMessage(QByteArray byteArray, int dataType, uint16_t *data) { if(dataType == TypeRecvData) { ui->labelVol1->setText(QString::number(data[0])); ui->labelVol2->setText(QString::number(data[1])); ui->labelVol3->setText(QString::number(data[2])); ui->labelVol4->setText(QString::number(data[3])); ui->labelVol5->setText(QString::number(data[4])); ui->labelVol6->setText(QString::number(data[5])); ui->labelVol7->setText(QString::number(data[6])); ui->labelVol8->setText(QString::number(data[7])); ui->labelVol9->setText(QString::number(data[8])); ui->labelVol10->setText(QString::number(data[9])); ui->labelVol11->setText(QString::number(data[10])); ui->labelVol12->setText(QString::number(data[11])); ui->labelVol13->setText(QString::number(data[12])); ui->labelVol14->setText(QString::number(data[13])); ui->labelVol15->setText(QString::number(data[14])); ui->labelVol16->setText(QString::number(data[15])); } } void MainWindow::slot_pageHomeSglTempt(QByteArray byteArray, int dataType, uint16_t *data) { if(dataType == TypeRecvData) { ui->labelTemp1->setText(QString::number(data[0])); ui->labelTemp2->setText(QString::number(data[1])); ui->labelTemp3->setText(QString::number(data[2])); ui->labelTemp4->setText(QString::number(data[3])); ui->labelTemp5->setText(QString::number(data[4])); ui->labelTemp6->setText(QString::number(data[5])); ui->labelTemp7->setText(QString::number(data[6])); ui->labelTemp8->setText(QString::number(data[7])); ui->labelTemp9->setText(QString::number(data[8])); ui->labelTemp10->setText(QString::number(data[9])); ui->labelTemp11->setText(QString::number(data[10])); ui->labelTemp12->setText(QString::number(data[11])); ui->labelTemp13->setText(QString::number(data[12])); ui->labelTemp14->setText(QString::number(data[13])); ui->labelTemp15->setText(QString::number(data[14])); ui->labelTemp16->setText(QString::number(data[15])); } } void MainWindow::slot_pageHomeBaseInfo1_45(QByteArray byteArray, int dataType, uint16_t *data) { if(dataType == TypeRecvData) { ui->volValue->setText(QString::number(data[0])); ui->batVal_vol_all->setText(QString::number(data[0])); ui->currValue->setText(QString::number(data[1])); ui->batVal_cur_all->setText(QString::number(data[1])); ui->batVal_soc->setText(QString::number(data[2])); ui->widgetBatt->setValue(data[2]); ui->batVal_soh->setText(QString::number(data[3])); ui->batVal_soe->setText(QString::number(data[4])); ui->batVal_rated_vol->setText(QString::number(data[5])); ui->batVal_rated_cap->setText(QString::number(data[6])); ui->batVal_remain_cap->setText(QString::number(data[7])); ui->batVal_bat_count->setText(QString::number(data[12])); battery_count = data[12]; ui->batVal_tempt_count->setText(QString::number(data[14])); ui->batVal_max_dischg_cur->setText(QString::number(data[16])); ui->batVal_max_dischg_pwer->setText(QString::number(data[17])); ui->batVal_max_chg_cur->setText(QString::number(data[18])); ui->batVal_max_chg_pwer->setText(QString::number(data[19])); ui->batVal_pos_insu_res->setText(QString::number(data[20])); ui->batVal_neg_insu_res->setText(QString::number(data[21])); ui->batVal_sgl_vol_avg->setText(QString::number(data[22])); ui->batVal_sgl_max_press_diff->setText(QString::number(data[23])); ui->batVal_max_sgl_vol->setText(QString::number(data[24])); ui->batVal_max_sgl_vol_bmu_num->setText(QString::number(data[25])); ui->batVal_max_sgl_vol_serial_num->setText(QString::number(data[26])); ui->batVal_min_sgl_vol->setText(QString::number(data[27])); ui->batVal_min_sgl_vol_bmu_num->setText(QString::number(data[28])); ui->batVal_min_sgl_vol_serial_num->setText(QString::number(data[29])); ui->batVal_sgl_temp_avg->setText(QString::number(data[30])); ui->batVal_sgl_max_temp_diff->setText(QString::number(data[31])); ui->batVal_max_sgl_temp->setText(QString::number(data[32])); ui->batVal_max_sgl_temp_bmu_num->setText(QString::number(data[33])); ui->batVal_max_sgl_temp_serial_num->setText(QString::number(data[34])); ui->batVal_min_sgl_temp->setText(QString::number(data[35])); ui->batVal_min_sgl_temp_bmu_num->setText(QString::number(data[36])); ui->batVal_min_sgl_temp_serial_num->setText(QString::number(data[37])); ui->batVal_day_chg_cap->setText(QString::number(data[38])); ui->batVal_day_chg_ele->setText(QString::number(data[39])); ui->batVal_day_dischg_cap->setText(QString::number(data[40])); ui->batVal_day_dischg_ele->setText(QString::number(data[41])); ui->batVal_day_chg_time->setText(QString::number(data[42])); ui->batVal_day_dischg_time->setText(QString::number(data[43])); ui->batVal_leiji_chg_cap->setText(QString::number(data[44])); //主页单体值 ui->label_home_max_sgl_vol->setText(QString::number(data[24])); ui->label_home_min_sgl_vol->setText(QString::number(data[27])); ui->label_home_max_sgl_temp->setText(QString::number(data[32])); ui->label_home_min_sgl_temp->setText(QString::number(data[35])); // int array_day_chart[] = {base_info1_45[39], base_info1_45[41], base_info1_45[42], base_info1_45[43]}; // QChartView *chartView_day = chartPat->Paint("日", array_day_chart); // chartView_day->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // gridLayout->addWidget(chartView_day, 0, 0); // ui->batVal_leiji_chg_ele->setText(QString::number(base_info1_45[46])); } } void MainWindow::slot_pageHomeBaseInfo57_78(QByteArray byteArray, int dataType, uint16_t *data) { if(dataType == TypeRecvData) { QList result_int; bool ok; for (int i = 3; i < byteArray.size(); i += 2) { quint8 firstByte = (i < byteArray.size())? byteArray.at(i) : 0; quint8 secondByte = (i + 1 < byteArray.size())? byteArray.at(i + 1) : 0; QString hexValue = QString("%1%2") .arg(QString::number(firstByte, 16).rightJustified(2, '0')) .arg(QString::number(secondByte, 16).rightJustified(2, '0')); result_int += hexValue.toInt(&ok, 16); } base_info57_78 = result_int; ui->batVal_bcu_work_status->setText(QString::number(base_info57_78[0])); ui->batVal_relay_neg_status->setText(QString::number(base_info57_78[1])); ui->batVal_relay_pos_status->setText(QString::number(base_info57_78[2])); ui->batVal_relay_dischg_status->setText(QString::number(base_info57_78[3])); ui->batVal_relay_chg_status->setText(QString::number(base_info57_78[4])); ui->batVal_relay_prechg_status->setText(QString::number(base_info57_78[5])); ui->batVal_relay_status->setText(QString::number(base_info57_78[6])); ui->batVal_on_off_status->setText(QString::number(base_info57_78[7])); ui->batVal_trouble_status->setText(QString::number(base_info57_78[8])); /*66~73 故障1~8的故障等级 故障9~16的故障等级 故障17~24的故障等级 故障25~32的故障等级 故障33~40的故障等级 故障41~48的故障等级 故障49~56的故障等级 故障57~64的故障等级 */ ui->batVal_bat_cycle_number->setText(QString::number(base_info57_78[17])); ui->batVal_max_chg_cell_vol->setText(QString::number(base_info57_78[18])); ui->batVal_min_chg_cell_vol->setText(QString::number(base_info57_78[19])); /*77,78 最大允许充电总压 最小允许放电总压 */ } } void MainWindow::slot_pageHomeBaseInfo83_106(QByteArray byteArray, int dataType, uint16_t *data) { if(dataType == TypeRecvData) { ui->batVal_samp_press_all->setText(QString::number(data[0])); /*84~95 一级故障(故障位1~16) 一级故障(故障位17~32) 一级故障(故障位33~48) 一级故障(故障位49~64) 二级故障(故障位1~16) 二级故障(故障位17~32) 二级故障(故障位33~48) 二级故障(故障位49~64) 三级故障(故障位1~16) 三级故障(故障位17~32) 三级故障(故障位33~48) 三级故障(故障位49~64) */ ui->batVal_state_machine->setText(QString::number(data[13])); ui->batVal_chg_satus->setText(QString::number(data[14])); ui->batVal_dischg_satus->setText(QString::number(data[15])); ui->batVal_high_press_close_status->setText(QString::number(data[16])); ui->batVal_fan_status->setText(QString::number(data[17])); ui->batVal_all_alert->setText(QString::number(data[18])); ui->batVal__trouble_all->setText(QString::number(data[19])); /*103~106 BCU地址 BCU主回路状态 BCU回路闭合指令 BCU是否允许闭合主回路 */ } } void MainWindow::slot_pageHomeBaseInfo47_49_51_53_55(QList byteArray, int dataType) { if(dataType == TypeRecvData) { // QList result_int; // bool ok; // for (int i = 3; i < byteArray.size(); i += 2) { // quint8 firstByte = (i < byteArray.size())? byteArray.at(i) : 0; // quint8 secondByte = (i + 1 < byteArray.size())? byteArray.at(i + 1) : 0; // QString hexValue = QString("%1%2") // .arg(QString::number(firstByte, 16).rightJustified(2, '0')) // .arg(QString::number(secondByte, 16).rightJustified(2, '0')); // result_int += hexValue.toInt(&ok, 16); // } // for (int i = 0; i < byteArray.size(); i += 2) { // uint16_t value; // memcpy(&value, byteArray.data() + i, 2); // base_info47_49_51_53_55.append(value); // // qDebug() << "Value: " << value; // } // base_info47_49_51_53_55 = result_int; // qDebug() << byteArray; ui->batVal_leiji_chg_ele->setText(QString::number(byteArray[0])); ui->batVal_leiji_dischg_cap->setText(QString::number(byteArray[1])); ui->batVal_leiji_dischg_ele->setText(QString::number(byteArray[2])); ui->batVal_leiji_chg_time->setText(QString::number(byteArray[3])); ui->batVal_leiji_dischg_time->setText(QString::number(byteArray[4])); // int array_leiji_chart[] = {byteArray[0], byteArray[2], byteArray[3], byteArray[4]}; // QChartView *chartView_leiji = chartPat->Paint("累计", array_leiji_chart); // chartView_leiji->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // chartView_leiji->setSizeAdjustPolicy(QChartView::AdjustToContents); // gridLayout->addWidget(chartView_leiji, 0, 1); } } void MainWindow::sgl_info_process(QList sgl_info, QList labelList) { // ui->tabWidget_sgl_info->update(); int MaxIndex = findMaxIndex(sgl_info); int MinIndex = findMinIndex(sgl_info); /* ui->color_sgl_high->setStyleSheet("background-color: rgb(255, 0, 0);"); ui->color_sgl_low->setStyleSheet("background-color: rgb(0, 255, 0);"); ui->color_equilibrium->setStyleSheet("background-color: rgb(0, 0, 200);"); ui->color_short_circuit->setStyleSheet("background-color: rgb(255, 165, 0);"); */ for (int i=0;i < sgl_info.size(); i++) { labelList[i]->setText(QString::number(sgl_info[i])); labelList[i]->setAlignment(Qt::AlignCenter); QFont font("黑体", 10); labelList[i]->setFont(font); if(i == MaxIndex) { labelList[MaxIndex]->setStyleSheet("QLabel{background-color:rgb(255, 0, 0);}"); } else if (i == MinIndex) { labelList[MinIndex]->setStyleSheet("QLabel{background-color:rgb(0, 255, 0);}"); } else { labelList[i]->setStyleSheet("QLabel{background-color:rgb(255, 255, 255);}"); } } } int MainWindow::findMaxIndex(QList sgl_info) { if (sgl_info.isEmpty()) return -1; int maxValue = sgl_info.at(0); int maxIndex = 0; for (int i = 1; i < sgl_info.size(); ++i) { int value = sgl_info.at(i); if (value > maxValue) { maxValue = value; maxIndex = i; } } return maxIndex; } int MainWindow::findMinIndex(QList sgl_info) { if (sgl_info.isEmpty()) return -1; int minValue = sgl_info.at(0); int minIndex = 0; for (int i = 1; i < sgl_info.size(); ++i) { int value = sgl_info.at(i); if (value < minValue) { minValue = value; minIndex = i; } } return minIndex; } void MainWindow::getLanNumberSlot(int number) { lan = number; qDebug() << "lan:" << lan; pageBatteryInit(); pageParaSetInit(); pageParaSetInit_alert_value(); pageParaSetInit_alert_delay(); pageParaSetInit_alert_release_value(); pageParaSetInit_alert_release_delay(); pageParaSetInit_alert_dropcurr_rate(); pageParaSetInit_alert_solve_measure(); pageParaSetInit_DIDO_setting(); pageParaSetInit_balance_setting(); pageParaSetInit_SOX_setting(); pageParaSetInit_other_setting(); pageHomeHistoryAlarm(); pageFlashGetVersion(); } void MainWindow::pageBatteryInit() { } void MainWindow::pageHomeHistoryAlarm() { ui->groupBox_history_alarm->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_history_alarm->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_history_alarm->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_history_alarm->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_history_alarm->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_history_alarm->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_history_alarm->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_history_alarm->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_history_alarm->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_history_alarm->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_history_alarm->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_history_alarm->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_history_alarm->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_history_alarm->setShowGrid(true); ui->tableView_history_alarm->sizePolicy(); /*设置垂直表头是否可见*/ ui->tableView_history_alarm->verticalHeader()->setVisible(false); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_history_alarm->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_history_alarm->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_history_alarm->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_history_alarm->horizontalHeader()->setFixedHeight(30); /*设置表头是否可以单击--不可单击*/ ui->tableView_history_alarm->horizontalHeader()->setSectionsClickable(false); ui->tableView_history_alarm->verticalHeader()->setHidden(false); ui->tableView_history_alarm->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); /*是否可编辑*/ if(true) { ui->tableView_history_alarm->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_history_alarm->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "时间" << "告警名称" << "BCUId" << "状态"; columnWidths << 360 << 240 << 240 << 240; QStringList columnNames_english; QList columnWidths_english; columnNames_english << "Time" << "Alarm Name" << "BCUId" << "Status"; columnWidths_english << 360 << 240 << 240 << 240; if(lan == 0) { model_history_alarm = new QStandardItemModel; model_history_alarm->setHorizontalHeaderLabels(columnNames_english); ui->tableView_history_alarm->setModel(model_history_alarm); int count = columnNames_english.count(); for(int i = 0; i< count;i++) { ui->tableView_history_alarm->setColumnWidth(i, columnWidths_english.at(i)); } } else if(lan == 1) { model_history_alarm = new QStandardItemModel; model_history_alarm->setHorizontalHeaderLabels(columnNames); ui->tableView_history_alarm->setModel(model_history_alarm); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_history_alarm->setColumnWidth(i, columnWidths.at(i)); } } Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_history_alarm->setItemDelegateForColumn(0, labelDelegate); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_history_alarm->setItemDelegateForColumn(1,labelDelegate1); Delegate * labelDelegate2 = new Delegate; labelDelegate2->setDelegateType("QLabel"); ui->tableView_history_alarm->setItemDelegateForColumn(2, labelDelegate2); Delegate *labelDelegate3 = new Delegate; labelDelegate3->setDelegateType("QLabel"); ui->tableView_history_alarm->setItemDelegateForColumn(3,labelDelegate3); // if(lan == 0) // { // } // else if(lan == 1) // { // } } void MainWindow::pageFlashGetVersion() { ui->tableView_Version->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_Version->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_Version->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_Version->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_Version->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_Version->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_Version->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_Version->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_Version->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_Version->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_Version->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_Version->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_Version->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_Version->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_Version->verticalHeader()->setVisible(false); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_Version->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_Version->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_Version->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_Version->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_Version->horizontalHeader()->setSectionsClickable(false); ui->tableView_Version->verticalHeader()->setHidden(false); ui->tableView_Version->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); /*是否可编辑*/ if(true) { ui->tableView_Version->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_Version->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "ID" << "升级前版本号" << "升级后版本号" ; columnWidths << 120 << 360 << 360 ; QStringList columnNames_english; QList columnWidths_english; columnNames_english << "ID" << "Version before upgrade" << "Version after upgrade" ; columnWidths_english << 120 << 360 << 360 ; if(lan == 0) { model_get_version = new QStandardItemModel; model_get_version->setHorizontalHeaderLabels(columnNames_english); ui->tableView_Version->setModel(model_get_version); int count = columnNames_english.count(); for(int i = 0; i< count;i++) { ui->tableView_Version->setColumnWidth(i, columnWidths_english.at(i)); } } else if(lan == 1) { model_get_version = new QStandardItemModel; model_get_version->setHorizontalHeaderLabels(columnNames); ui->tableView_Version->setModel(model_get_version); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_Version->setColumnWidth(i, columnWidths.at(i)); } } Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_Version->setItemDelegateForColumn(0, labelDelegate); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_Version->setItemDelegateForColumn(1,labelDelegate1); Delegate * labelDelegate2 = new Delegate; labelDelegate2->setDelegateType("QLabel"); ui->tableView_Version->setItemDelegateForColumn(2, labelDelegate2); } void MainWindow::pageParaSetInit() { ui->tabWidget_paraset->setCurrentIndex(0); ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_paraset_sys->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_paraset_sys->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_paraset_sys->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_paraset_sys->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_paraset_sys->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_paraset_sys->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_paraset_sys->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_paraset_sys->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_paraset_sys->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_paraset_sys->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_paraset_sys->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_paraset_sys->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_paraset_sys->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_paraset_sys->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_paraset_sys->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_paraset_sys->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_paraset_sys->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_paraset_sys->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_paraset_sys->horizontalHeader()->setSectionsClickable(false); ui->tableView_paraset_sys->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_paraset_sys->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_paraset_sys->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_paraset_sys->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_paraset_sys->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_paraset_sys->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_paraset_sys->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_paraset_sys->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_paraset_sys->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { qDebug() << "english_item size: 11111111111111" << item.itemattr_size(); for(int i = 0; i < item.itemattr_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { qDebug() << "item size: 11111111111111" << item.itemattr_size(); for(int i = 0; i < item.itemattr_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_alert_value() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_paraset_alert_value->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_paraset_alert_value->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_paraset_alert_value->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_paraset_alert_value->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_paraset_alert_value->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_paraset_alert_value->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_paraset_alert_value->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_paraset_alert_value->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_paraset_alert_value->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_paraset_alert_value->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_paraset_alert_value->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_paraset_alert_value->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_paraset_alert_value->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_paraset_alert_value->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_paraset_alert_value->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_paraset_alert_value->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_paraset_alert_value->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_paraset_alert_value->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_paraset_alert_value->horizontalHeader()->setSectionsClickable(false); ui->tableView_paraset_alert_value->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_paraset_alert_value->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_paraset_alert_value->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_paraset_alert_value->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_paraset_alert_value->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_paraset_alert_value->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_paraset_alert_value->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_paraset_alert_value->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_paraset_alert_value->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_value_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_value(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_value(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_value(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_value_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_value(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_value(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_value(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_alert_delay() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_paraset_alert_delay->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_paraset_alert_delay->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_paraset_alert_delay->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_paraset_alert_delay->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_paraset_alert_delay->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_paraset_alert_delay->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_paraset_alert_delay->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_paraset_alert_delay->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_paraset_alert_delay->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_paraset_alert_delay->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_paraset_alert_delay->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_paraset_alert_delay->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_paraset_alert_delay->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_paraset_alert_delay->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_paraset_alert_delay->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_paraset_alert_delay->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_paraset_alert_delay->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_paraset_alert_delay->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_paraset_alert_delay->horizontalHeader()->setSectionsClickable(false); ui->tableView_paraset_alert_delay->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_paraset_alert_delay->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_paraset_alert_delay->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_paraset_alert_delay->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_paraset_alert_delay->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_paraset_alert_delay->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_paraset_alert_delay->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_paraset_alert_delay->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_paraset_alert_delay->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_delay_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_delay(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_delay(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_delay(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_delay_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_delay(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_delay(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_delay(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_alert_release_value() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_paraset_alert_release_value->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_paraset_alert_release_value->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_paraset_alert_release_value->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_paraset_alert_release_value->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_paraset_alert_release_value->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_paraset_alert_release_value->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_paraset_alert_release_value->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_paraset_alert_release_value->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_paraset_alert_release_value->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_paraset_alert_release_value->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_paraset_alert_release_value->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_paraset_alert_release_value->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_paraset_alert_release_value->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_paraset_alert_release_value->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_paraset_alert_release_value->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_paraset_alert_release_value->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_paraset_alert_release_value->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_paraset_alert_release_value->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_paraset_alert_release_value->horizontalHeader()->setSectionsClickable(false); ui->tableView_paraset_alert_release_value->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_paraset_alert_release_value->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_paraset_alert_release_value->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_paraset_alert_release_value->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_paraset_alert_release_value->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_paraset_alert_release_value->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_paraset_alert_release_value->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_paraset_alert_release_value->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_paraset_alert_release_value->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_release_value_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_value(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_release_value(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_value(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_release_value_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_value(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_release_value(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_value(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_alert_release_delay() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_paraset_alert_release_delay->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_paraset_alert_release_delay->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_paraset_alert_release_delay->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_paraset_alert_release_delay->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_paraset_alert_release_delay->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_paraset_alert_release_delay->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_paraset_alert_release_delay->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_paraset_alert_release_delay->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_paraset_alert_release_delay->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_paraset_alert_release_delay->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_paraset_alert_release_delay->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_paraset_alert_release_delay->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_paraset_alert_release_delay->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_paraset_alert_release_delay->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_paraset_alert_release_delay->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_paraset_alert_release_delay->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_paraset_alert_release_delay->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_paraset_alert_release_delay->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_paraset_alert_release_delay->horizontalHeader()->setSectionsClickable(false); ui->tableView_paraset_alert_release_delay->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_paraset_alert_release_delay->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_paraset_alert_release_delay->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_paraset_alert_release_delay->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_paraset_alert_release_delay->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_paraset_alert_release_delay->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_paraset_alert_release_delay->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_paraset_alert_release_delay->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_paraset_alert_release_delay->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_release_delay_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_delay(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_release_delay(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_delay(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_release_delay_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_delay(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_release_delay(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_delay(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_alert_dropcurr_rate() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_paraset_alert_dropcurr_rate->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_paraset_alert_dropcurr_rate->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_paraset_alert_dropcurr_rate->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_paraset_alert_dropcurr_rate->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_paraset_alert_dropcurr_rate->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_paraset_alert_dropcurr_rate->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_paraset_alert_dropcurr_rate->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_paraset_alert_dropcurr_rate->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_paraset_alert_dropcurr_rate->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_paraset_alert_dropcurr_rate->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_paraset_alert_dropcurr_rate->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_paraset_alert_dropcurr_rate->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_paraset_alert_dropcurr_rate->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_paraset_alert_dropcurr_rate->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_paraset_alert_dropcurr_rate->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_paraset_alert_dropcurr_rate->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_paraset_alert_dropcurr_rate->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_paraset_alert_dropcurr_rate->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_paraset_alert_dropcurr_rate->horizontalHeader()->setSectionsClickable(false); ui->tableView_paraset_alert_dropcurr_rate->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_paraset_alert_dropcurr_rate->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_paraset_alert_dropcurr_rate->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_paraset_alert_dropcurr_rate->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_paraset_alert_dropcurr_rate->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_paraset_alert_dropcurr_rate->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_paraset_alert_dropcurr_rate->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_paraset_alert_dropcurr_rate->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_paraset_alert_dropcurr_rate->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_dropcurr_rate_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_dropcurr_rate(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_dropcurr_rate(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_dropcurr_rate(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_dropcurr_rate_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_dropcurr_rate(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_dropcurr_rate(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_dropcurr_rate(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_alert_solve_measure() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_paraset_alert_solve_mease->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_paraset_alert_solve_mease->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_paraset_alert_solve_mease->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_paraset_alert_solve_mease->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_paraset_alert_solve_mease->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_paraset_alert_solve_mease->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_paraset_alert_solve_mease->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_paraset_alert_solve_mease->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_paraset_alert_solve_mease->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_paraset_alert_solve_mease->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_paraset_alert_solve_mease->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_paraset_alert_solve_mease->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_paraset_alert_solve_mease->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_paraset_alert_solve_mease->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_paraset_alert_solve_mease->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_paraset_alert_solve_mease->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_paraset_alert_solve_mease->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_paraset_alert_solve_mease->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_paraset_alert_solve_mease->horizontalHeader()->setSectionsClickable(false); ui->tableView_paraset_alert_solve_mease->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_paraset_alert_solve_mease->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_paraset_alert_solve_mease->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_paraset_alert_solve_mease->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_paraset_alert_solve_mease->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_paraset_alert_solve_mease->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_paraset_alert_solve_mease->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_paraset_alert_solve_mease->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_paraset_alert_solve_mease->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_solve_measure_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_solve_measure(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_solve_measure(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_solve_measure(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_alert_solve_measure_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_solve_measure(i)->name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_solve_measure(i)->value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_solve_measure(i)->introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_DIDO_setting() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_DIDO_setting->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_DIDO_setting->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_DIDO_setting->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_DIDO_setting->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_DIDO_setting->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_DIDO_setting->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_DIDO_setting->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_DIDO_setting->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_DIDO_setting->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_DIDO_setting->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_DIDO_setting->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_DIDO_setting->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_DIDO_setting->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_DIDO_setting->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_DIDO_setting->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_DIDO_setting->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_DIDO_setting->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_DIDO_setting->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_DIDO_setting->horizontalHeader()->setSectionsClickable(false); ui->tableView_DIDO_setting->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_DIDO_setting->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_DIDO_setting->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_DIDO_setting->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_DIDO_setting->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_DIDO_setting->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_DIDO_setting->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_DIDO_setting->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_DIDO_setting->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i=0; i < item.itemattr_dido_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_dido(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_dido(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_dido(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i=0; i < item.itemattr_dido_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_dido(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_dido(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_dido(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_balance_setting() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_balance_setting->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_balance_setting->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_balance_setting->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_balance_setting->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_balance_setting->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_balance_setting->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_balance_setting->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_balance_setting->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_balance_setting->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_balance_setting->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_balance_setting->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_balance_setting->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_balance_setting->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_balance_setting->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_balance_setting->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_balance_setting->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_balance_setting->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_balance_setting->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_balance_setting->horizontalHeader()->setSectionsClickable(false); ui->tableView_balance_setting->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_balance_setting->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_balance_setting->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_balance_setting->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_balance_setting->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_balance_setting->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_balance_setting->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_balance_setting->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_balance_setting->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i< item.itemattr_balance_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_balance(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_balance(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_balance(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i< item.itemattr_balance_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_balance(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_balance(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_balance(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_SOX_setting() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_SOX_setting->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_SOX_setting->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_SOX_setting->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_SOX_setting->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_SOX_setting->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_SOX_setting->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_SOX_setting->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_SOX_setting->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_SOX_setting->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_SOX_setting->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_SOX_setting->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_SOX_setting->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_SOX_setting->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_SOX_setting->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_SOX_setting->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_SOX_setting->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_SOX_setting->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_SOX_setting->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_SOX_setting->horizontalHeader()->setSectionsClickable(false); ui->tableView_SOX_setting->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_SOX_setting->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_SOX_setting->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_SOX_setting->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_SOX_setting->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_SOX_setting->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_SOX_setting->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_SOX_setting->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_SOX_setting->setItemDelegateForColumn(3,labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for (int i=0; i < item.itemattr_sox_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_sox(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_sox(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_sox(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for (int i=0; i < item.itemattr_sox_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_sox(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_sox(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_sox(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } void MainWindow::pageParaSetInit_other_setting() { // ui->tabWidget_paraset->setStyleSheet("background-color: #FFFFFF;"); // ui->pageParaSet->setStyleSheet("background-color: #FFFFFF;"); /*设置默认行高*/ ui->tableView_other_setting->verticalHeader()->setDefaultSectionSize(26); /*设置交替行颜色--允许交替行颜色*/ ui->tableView_other_setting->setAlternatingRowColors(true); /*设置水平/垂直滚动模式--一次滚动一个项目*/ ui->tableView_other_setting->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); ui->tableView_other_setting->setVerticalScrollMode(QAbstractItemView::ScrollPerItem); /*设置选择行为--每次选择只有一整行*/ ui->tableView_other_setting->setSelectionBehavior(QAbstractItemView::SelectRows); /*设置拖放行为--不允许拖放*/ ui->tableView_other_setting->setDragDropMode(QAbstractItemView::NoDragDrop); /*设置选择模式--只能选择一个项目*/ ui->tableView_other_setting->setSelectionMode(QAbstractItemView::SingleSelection); /*设置Tab导航键--允许使用Tab键导航,shift+tab反向导航*/ ui->tableView_other_setting->setTabKeyNavigation(true); /*设置是否自动换行--取消自动换行*/ ui->tableView_other_setting->setWordWrap(false); /*设置文本省略模式--省略号不会出现在文本中*/ ui->tableView_other_setting->setTextElideMode(Qt::ElideNone); /*设置左上角全选按钮--禁用*/ ui->tableView_other_setting->setCornerButtonEnabled(false); /*设置是否支持表头排序--应该和表头是否可以单击保持一致*/ ui->tableView_other_setting->setSortingEnabled(false); /*设置是否显示网格线*/ ui->tableView_other_setting->setShowGrid(true); /*设置垂直表头是否可见*/ ui->tableView_other_setting->verticalHeader()->setVisible(true); /*设置选中一行表头是否加粗--不加粗*/ ui->tableView_other_setting->horizontalHeader()->setHighlightSections(true); /*设置最后一行是否拉伸填充*/ ui->tableView_other_setting->horizontalHeader()->setStretchLastSection(true); /*设置行标题最小宽度尺寸*/ ui->tableView_other_setting->horizontalHeader()->setMinimumSectionSize(0); /*设置行标题最小高度*/ ui->tableView_other_setting->horizontalHeader()->setFixedHeight(35); /*设置表头是否可以单击--不可单击*/ ui->tableView_other_setting->horizontalHeader()->setSectionsClickable(false); ui->tableView_other_setting->verticalHeader()->setHidden(false); /*是否可编辑*/ if(true) { ui->tableView_other_setting->setEditTriggers(QAbstractItemView::CurrentChanged|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); } else { ui->tableView_other_setting->setEditTriggers(QAbstractItemView::NoEditTriggers); } QStringList columnNames; QList columnWidths; columnNames << "check" << "name" << "value" << "introduce"; columnWidths << 60 << 420 << 120 << 120; model = new QStandardItemModel; model->setHorizontalHeaderLabels(columnNames); ui->tableView_other_setting->setModel(model); int count = columnNames.count(); for(int i = 0; i< count;i++) { ui->tableView_other_setting->setColumnWidth(i, columnWidths.at(i)); } Delegate *checkDelegate = new Delegate; checkDelegate->setDelegateType("QCheckBox"); checkDelegate->setDelegateColumn(0); ui->tableView_other_setting->setItemDelegateForColumn(0, checkDelegate); Delegate *labelDelegate = new Delegate; labelDelegate->setDelegateType("QLabel"); ui->tableView_other_setting->setItemDelegateForColumn(1,labelDelegate); Delegate * lineEidtDelegate1 = new Delegate; lineEidtDelegate1->setDelegateType("QLineEdit"); ui->tableView_other_setting->setItemDelegateForColumn(2, lineEidtDelegate1); Delegate *labelDelegate1 = new Delegate; labelDelegate1->setDelegateType("QLabel"); ui->tableView_other_setting->setItemDelegateForColumn(3, labelDelegate1); if(lan == 0) { BatteryConfig_English::Item item; std::ifstream finBetteryData("battery_english.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_other_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_other(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_other(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_other(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } else if(lan == 1) { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { for(int i = 0; i < item.itemattr_other_size(); i++) { for(int j = 0; j < 4; j++) { if(j == 1) { model->setItem(i, j, new QStandardItem(item.itemattr_other(i).name().c_str())); } else if(j == 2) { model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_other(i).value()))); } else if(j == 3) { model->setItem(i, j, new QStandardItem(item.itemattr_other(i).introduce().c_str())); } } } finBetteryData.close(); finBetteryData.clear(); } } } // void MainWindow::setNum(QString value) // { // qDebug("###1"); // QModelIndex currentIndex = ui->pageParaSetTableView->currentIndex(); // if(currentIndex.column() == 3) // { // model->setData(model->index(currentIndex.row(), 10), value.toFloat()); // } // } void MainWindow::slot_getBcuNumberFromDialoglogin(int number) { Q_UNUSED(number); // QTreeView treeView; // 创建模型 modelBCU = new QStandardItemModel(ui->treeViewBCUbmu); // QMap indexTopPageMap; //创建一级目录项数为可变的 // QStringList bcuNames; // qDebug() << "number: " << number; // for (int i = 1; i <= number; ++i) { // QString bcuName = QString("BCU%1").arg(i); // bcuNames.append(bcuName); // } // qDebug() << "BCUNames" << bcuNames; // 创建一级目录项 rootItem = new QStandardItem("BCU01"); // 设置一级目录项的字体为加粗 QFont boldFont = rootItem->font(); boldFont.setBold(true); rootItem->setFont(boldFont); modelBCU->appendRow(rootItem); for (int i = 1; i <= 26; ++i) { QString bmuName = QString("BMU%1").arg(i); QStandardItem *bmuItem = new QStandardItem(bmuName); rootItem->appendRow(bmuItem); } ui->tabWidgetBCU->setCurrentIndex(0); ui->tabWidgetBMU->setCurrentIndex(0); connect(ui->treeViewBCUbmu, &QTreeView::clicked, [=](const QModelIndex index){ if(index.parent().isValid()) { // qDebug() << "index" << index; qDebug() << "BMU: the row of the List" << index.row(); int rowIndex = index.row(); emit row_of_bmus_index(rowIndex); ui->pageBatteryStackWidget->setCurrentIndex(1); } else { // qDebug() << "index" << index; qDebug() << "BCU" << index.row(); // int topLeveIndex = index.row(); ui->pageBatteryStackWidget->setCurrentIndex(0); } }); ui->treeViewBCUbmu->setModel(modelBCU); ui->treeViewBCUbmu->setHeaderHidden(true); ui->treeViewBCUbmu->setAnimated(true); ui->treeViewBCUbmu->expandAll(); ui->treeViewBCUbmu->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->treeViewBCUbmu->show(); } void MainWindow::on_pageParaSetCheck_stateChanged(int arg1) { QWidget *currentWidget = ui->tabWidget_paraset->currentWidget(); if (currentWidget) { QTableView *tableView = currentWidget->findChild(); if (tableView) { QStandardItemModel *model = qobject_cast(tableView->model()); if (model) { if(arg1 == Qt::CheckState::Checked) { for(int i = 0; i < model->rowCount(); i++) { model->setItem(i, 0, new QStandardItem("true")); } } else { for(int i = 0; i < model->rowCount(); i++) { model->setItem(i, 0, new QStandardItem("false")); } } } } } } void MainWindow::on_pageParaSetRead_clicked() { BatteryConfig::Item item; std::ifstream finBetteryData("battery.data", std::ios::binary); if(!item.ParseFromIstream(&finBetteryData)) { qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; finBetteryData.close(); finBetteryData.clear(); } else { QList checkRow_read; QList checkAddress_read; QWidget *currentWidget = ui->tabWidget_paraset->currentWidget(); if (currentWidget) { QTableView *tableView = currentWidget->findChild(); if (tableView) { QStandardItemModel *model = qobject_cast(tableView->model()); if (model) { switch (tabWidget_paraset_index) { case 0: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr(row)->set_value(data); int tempAddress = item.mutable_itemattr(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 1: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_balance(row)->set_value(data); int tempAddress = item.mutable_itemattr_balance(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 2: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_sox(row)->set_value(data); int tempAddress = item.mutable_itemattr_sox(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 3: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_dido(row)->set_value(data); int tempAddress = item.mutable_itemattr_dido(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_alert_value(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_value(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 5: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_alert_delay(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_delay(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 6: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_alert_release_value(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_release_value(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 7: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_alert_release_delay(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_release_delay(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 8: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_alert_dropcurr_rate(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_dropcurr_rate(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 9: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_alert_solve_measure(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_solve_measure(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; case 10: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr_other(row)->set_value(data); int tempAddress = item.mutable_itemattr_other(row)->addr(); checkRow_read.append(row); checkAddress_read.append(tempAddress); } } } } break; } } } } if (checkRow_read.isEmpty()) { QMessageBox::warning(nullptr, "警告", "勾选框无勾选,请勾选后再操作"); } else{ int startAddress = -1; int consecutiveCount = 0; QList> pairs_addr;//addr, the number of the continuous int row_index_i = 0; // 防止勾选框不间断时,checkRow_read与checkAddress_read,值与索引不匹配的问题 for (int row : checkRow_read) { int address = checkAddress_read[row_index_i]; if (startAddress == -1) { startAddress = address; consecutiveCount = 1; } else if (address == startAddress + consecutiveCount) { consecutiveCount++; } else { if (consecutiveCount > 1) { pairs_addr.append(qMakePair(startAddress, consecutiveCount)); } else { pairs_addr.append(qMakePair(startAddress, 1)); } startAddress = address; consecutiveCount = 1; } row_index_i++; } if (consecutiveCount > 1) { pairs_addr.append(qMakePair(startAddress, consecutiveCount)); } else { pairs_addr.append(qMakePair(startAddress, 1)); } emit closeThread(); QThread::msleep(700); int rowStart = 0; QList>::iterator it; for (it = pairs_addr.begin(); it!= pairs_addr.end(); ++it) { qDebug() << "First element read: " << it->first << ", Second element read: " << it->second; uint16_t result[it->second]; int tempIndex = checkRow_read[rowStart]; emit read_regs_signals(it->first, it->second, result, tempIndex); QThread::msleep(80); rowStart += it->second; } emit openThread(); rowStart = 0; qDebug() << "read of the row" << checkRow_read; qDebug() << "read of the address" << checkAddress_read; } finBetteryData.close(); finBetteryData.clear(); } } void MainWindow::slot_testData(uint16_t *data) { // qDebug("#####slot_testData data[0]:[%x] [1]:[%x] [2]:[%x] [3]:[%x] [4]:[%x] [5]:[%x] [6]:[%x] [7]:[%x] [8]:[%x] [9]:[%x] ", // data[0], data[1], data[2], data[3], data[4], // data[5], data[6], data[7], data[8], data[9]); } void MainWindow::slot_pageParaSetShow(int row, int nb, uint16_t *data) { // qDebug() << "mainwindow:" << data[0] << data[1] << data[2] << data[3] << data[4]; int i = 0; for(;i < nb; row++, i++) { QWidget *currentWidget = ui->tabWidget_paraset->currentWidget(); if (currentWidget) { QTableView *tableView = currentWidget->findChild(); if (tableView) { QStandardItemModel *model = qobject_cast(tableView->model()); if (model) { qDebug() << "1111111111111111111"; QModelIndex index = model->index(row, 2); model->setData(index, data[i]); qDebug() << "第" << i << "个元素:"<< "row " << row << " result: " << data[i]; } } } } i = 0; } void MainWindow::trubleListInit() { for (int i = 1; i <= 56; ++i) { QString labelName = QString("label_trouble_%1").arg(i); QList allWidgets = findChildren(); for (QWidget* widget : allWidgets) { QLabel* label = qobject_cast(widget); if (label!= nullptr && label->objectName() == labelName) { trouble_list.append(label); break; // 找到后就可以跳出内层循环 } } } } void MainWindow::slot_pageHomeFault(QByteArray byteArray, int dataType, uint16_t *data) { /* ui->color_trouble_1->setStyleSheet("background-image: url(:/Image/trouble-background-1.png);"); ui->color_trouble_2->setStyleSheet("background-image: url(:/Image/trouble-background-2.png);"); ui->color_trouble_3->setStyleSheet("background-image: url(:/Image/trouble-background-3.png);"); ui->color_trouble_normal->setStyleSheet("background-image: url(:/Image/trouble-background-normal.png);"); */ if(dataType == TypeRecvData) { QList list; QList list_result; for (int i=0; i <= 6;i++) { QString temp = QString::number(data[i], 2); while (temp.size() < 16) { temp = "0" + temp; } list.append(temp); } for(const QString &binary : list) { for (int i = 0; i < 16; i+=2) { list_result << binary.mid(i, 2); } } // qDebug() << "data:" << data[0] << data[1] << data[2] << data[3] << data[4] << data[5] << data[6] << data[7]; // qDebug() << "test_list: " << list; // qDebug() << "list_reslut:" <setStyleSheet("background-image: url(:/Image/trouble-background-normal.png);"); } else if (list_result[i] == "01") { trouble_list[i]->setStyleSheet("background-image: url(:/Image/trouble-background-1.png);"); QString timeStr = QString(QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss.zzz] ")); model_history_alarm->setItem(count_history_alarm, 0, new QStandardItem(timeStr)); model_history_alarm->setItem(count_history_alarm, 1, new QStandardItem(trouble_list[i]->text())); model_history_alarm->setItem(count_history_alarm, 2, new QStandardItem(currentBCU)); if (lan == 0) { model_history_alarm->setItem(count_history_alarm, 3, new QStandardItem("Level 1 Alarm")); } else if (lan == 1) { model_history_alarm->setItem(count_history_alarm, 3, new QStandardItem("一级报警")); } count_history_alarm++; } else if (list_result[i] == "10") { trouble_list[i]->setStyleSheet("background-image: url(:/Image/trouble-background-2.png);"); QString timeStr = QString(QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss.zzz] ")); model_history_alarm->setItem(count_history_alarm, 0, new QStandardItem(timeStr)); model_history_alarm->setItem(count_history_alarm, 1, new QStandardItem(trouble_list[i]->text())); model_history_alarm->setItem(count_history_alarm, 2, new QStandardItem(currentBCU)); if (lan == 0) { model_history_alarm->setItem(count_history_alarm, 3, new QStandardItem("Level 2 Alarm")); } else if (lan == 1) { model_history_alarm->setItem(count_history_alarm, 3, new QStandardItem("二级报警")); } count_history_alarm++; } else if (list_result[i] == "11") { trouble_list[i]->setStyleSheet("background-image: url(:/Image/trouble-background-3.png);"); QString timeStr = QString(QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss.zzz] ")); model_history_alarm->setItem(count_history_alarm, 0, new QStandardItem(timeStr)); model_history_alarm->setItem(count_history_alarm, 1, new QStandardItem(trouble_list[i]->text())); model_history_alarm->setItem(count_history_alarm, 2, new QStandardItem(currentBCU)); if (lan == 0) { model_history_alarm->setItem(count_history_alarm, 3, new QStandardItem("Level 3 Alarm")); } else if (lan == 1) { model_history_alarm->setItem(count_history_alarm, 3, new QStandardItem("三级报警")); } count_history_alarm++; } else { trouble_list[i]->setStyleSheet("background-image: url(:/Image/trouble-background-default.png);"); qDebug() << "Can not analysis the right address!!!"; } } //设置每次界面刷新数据时,表格始终停留在最新的数据上 int curIndex = model_history_alarm->rowCount(); if (curIndex > 0) { ui->tableView_history_alarm->scrollToBottom(); } } } void MainWindow::closeEvent(QCloseEvent *e) { emit quitThread(); QWidget::closeEvent(e); } void MainWindow::on_pageParaSetWrite_clicked() { BatteryConfig::Item item; // 从磁盘读取 protobuf 文件 std::ifstream finBetteryData("battery.data", std::ios::in | std::ios::binary); if (!finBetteryData.is_open()) { } // 获取文件大小 finBetteryData.seekg(0, std::ios::end); size_t size = finBetteryData.tellg(); finBetteryData.seekg(0, std::ios::beg); // 读取文件内容到字符串 std::string serialized_data(size, '\0'); if (!finBetteryData.read(&serialized_data[0], size)) { } finBetteryData.close(); // 反序列化 protobuf 数据 if (!item.ParseFromString(serialized_data)) { } QList checkRow_write;//存放被勾选的勾选框的索引值 QVector originVector;//存放被勾选的勾选框的value QWidget *currentWidget = ui->tabWidget_paraset->currentWidget(); if (currentWidget) { QTableView *tableView = currentWidget->findChild(); if (tableView) { QStandardItemModel *model = qobject_cast(tableView->model()); if (model) { switch (tabWidget_paraset_index) { case 0: //仅需地址和值 qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr(row)->set_value(data); int tempAddress = item.mutable_itemattr(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 1: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_balance(row)->set_value(data); int tempAddress = item.mutable_itemattr_balance(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 2: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_sox(row)->set_value(data); int tempAddress = item.mutable_itemattr_sox(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 3: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_dido(row)->set_value(data); int tempAddress = item.mutable_itemattr_dido(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 4: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_alert_value(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_value(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 5: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_alert_delay(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_delay(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 6: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_alert_release_value(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_release_value(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 7: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_alert_release_delay(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_release_delay(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 8: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_alert_dropcurr_rate(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_dropcurr_rate(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 9: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_alert_solve_measure(row)->set_value(data); int tempAddress = item.mutable_itemattr_alert_solve_measure(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; case 10: qDebug() << "the tabWidget_paraset_index is : " << tabWidget_paraset_index; for(int row = 0; row < model->rowCount(); row++) { for(int column = 0; column < model->columnCount(); column++) { if(column == 0) { QModelIndex index = model->index(row, column); QString data = model->data(index).toString(); if(data == "true") { index = model->index(row, 2); // int tempAddress = item.mutable_itemattr(row)->addr(); // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; uint16_t data = model->data(index).toUInt(); item.mutable_itemattr_other(row)->set_value(data); int tempAddress = item.mutable_itemattr_other(row)->addr(); // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); } } } } break; } } } } // for(int row = 0; row < model->rowCount(); row++) // { // for(int column = 0; column < model->columnCount(); column++) // { // if(column == 0) // { // QModelIndex index = model->index(row, column); // QString data = model->data(index).toString(); // if(data == "true") { // index = model->index(row, 2); // // int tempAddress = item.mutable_itemattr(row)->addr(); // // int resultAddress = tempAddress < 4000 ? tempAddress - 3000 : tempAddress -4000 + 162; // uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr(row)->set_value(data); // // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); // } // } // } // } // for(int row = 0; row < model->rowCount(); row++) { // for(int column = 0; column < model->columnCount(); column++) { // if(column == 0) { // QModelIndex index = model->index(row, column); // QString data = model->data(index).toString(); // if(data == "true") { // index = model->index(row, 2); // uint16_t data = model->data(index).toUInt(); // item.mutable_itemattr(row)->set_value(data); // // qDebug() << "the address:" << item.mutable_itemattr(row)->addr() << " , the value is :" <value()); // } // } // } // } qDebug() << "write of the row" << checkRow_write; qDebug() << "originalLIst of the value" << originVector; if (checkRow_write.isEmpty()) { QMessageBox::warning(nullptr, "警告", "勾选框无勾选,请勾选后再操作"); } else { emit closeThread(); QThread::msleep(700); for (int i=0; ivalue(); // qDebug() << "update"; } void MainWindow::on_tabChanged(int index) { tabWidget_paraset_index = index; ui->pageParaSetCheck->setCheckState(Qt::Unchecked); } void MainWindow::on_comBoxBCUSelect(int index) { QString BCUText = ui->comboBoxBCUSelect->currentText(); QString statusBarBCULabel = "Current BCU: "; statusBarBcu->setText(statusBarBCULabel + BCUText); rootItem->setText(BCUText); //当改变BCU选择时,改变当前BCU读取的地址 currentBCU = BCUText; } void MainWindow::on_btn_close_pos_clicked() { //强闭总正 } void MainWindow::on_btn_open_pos_clicked() { //强断总正 } void MainWindow::on_btn_close_neg_clicked() { //强闭总负 } void MainWindow::on_btn_open_neg_clicked() { //强断总负 } void MainWindow::on_btn_close_prechg_clicked() { //强闭预充 } void MainWindow::on_btn_open_prechg_clicked() { //强断预充 } void MainWindow::on_btnImport_clicked() { QString filePath = QFileDialog::getOpenFileName(this, "请选择需要升级的固件", "", "所有文件 (*)"); if (!filePath.isEmpty()) { // 可以在这里对选择的文件路径进行处理 qDebug() << "选择的文件路径:" << filePath; ui->label_pageFlash_filepath->setText(filePath); } }