#include "frmcount.h" #include "ui_frmcount.h" #include "quihelper.h" #include "gaugecar.h" #include "lightbutton.h" #include "progresspercent.h" frmCount::frmCount(QWidget *parent) : QWidget(parent), ui(new Ui::frmCount) { ui->setupUi(this); this->initForm(); } frmCount::~frmCount() { delete ui; } void frmCount::initForm() { ui->tableWidget->setProperty("flag", "nobg"); int columnCount = 5; QList columnNames; QList columnWidths; columnNames << "详细信息" << "趋势" << "不合格工件" << "件" << "最新结果"; columnWidths << 80 << 80 << 90 << 100 << 80; ui->tableWidget->setColumnCount(columnCount); for (int i = 0; i < columnCount; i++) { ui->tableWidget->setColumnWidth(i, columnWidths.at(i)); } ui->tableWidget->setHorizontalHeaderLabels(columnNames); ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableWidget->verticalHeader()->setVisible(false); ui->tableWidget->verticalHeader()->setDefaultSectionSize(60); ui->tableWidget->horizontalHeader()->setMinimumHeight(30); ui->tableWidget->horizontalHeader()->setStretchLastSection(true); addData("EO-01|30|30|100|5"); addData("EO-02|88|88|100|5"); addData("EO-03|68|68|100|5"); for (int i = 0; i < 20; i++) { //addData(QString("EO-%1|30|100|100|5").arg(i + 4, 2, 10, QChar('0'))); } } void frmCount::addData(const QString &data) { QStringList list = data.split("|"); int count = ui->tableWidget->rowCount() + 1; ui->tableWidget->setRowCount(count); if (list.count() == 5) { //添加按钮 QPushButton *btn = new QPushButton; btn->setText(list.at(0)); ui->tableWidget->setCellWidget(count - 1, 0, btn); //添加仪表盘 int value = list.at(1).toInt(); GaugeCar *gauge = new GaugeCar; gauge->setValue(value); ui->tableWidget->setCellWidget(count - 1, 1, gauge); //添加值 QLabel *lab = new QLabel; lab->setAlignment(Qt::AlignCenter); lab->setText(list.at(2) + " %"); ui->tableWidget->setCellWidget(count - 1, 2, lab); //添加进度条 ProgressPercent *bar = new ProgressPercent; bar->setPercentStyle(ProgressPercent::PercentStyle_Arc_Wave); bar->setValue(value); ui->tableWidget->setCellWidget(count - 1, 3, bar); //添加进度条 LightButton *light = new LightButton; light->setShowRect(true); if (value > 60) { light->setLightGreen(); } else { light->setLightRed(); } ui->tableWidget->setCellWidget(count - 1, 4, light); } }