#include "tools_Index4.h" #include "ui_tools_Index4.h" tools_Index4::tools_Index4(QWidget *parent) : ToolsWidget(parent), ui(new Ui::tools_Index4) { ui->setupUi(this); //检测文件夹,如果不存在,那么就新建一个,这里存着所有的qml文件 QDir *Dir = new QDir; if(!Dir->exists("./Init")) Dir->mkdir("./Init");//如果文件夹不存在就新建 //load qss QFile file(":/qss/tools_index4.qss"); file.open(QFile::ReadOnly); QTextStream filetext(&file); QString stylesheet = filetext.readAll(); this->setStyleSheet(stylesheet); file.close(); setWindowTitle(tr("Servos Inspector")); addGroup(0); addGroup(1); //addGroup(2); //addGroup(3); //addGroup(4); } tools_Index4::~tools_Index4() { foreach (QProgressBar *bar, barlist) { if(bar) { delete bar; } } delete ui; } void tools_Index4::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::MiddleButton) { } else if (event->button() == Qt::RightButton) { } } void tools_Index4::mouseDoubleClickEvent(QMouseEvent *event) { } void tools_Index4::setChannel(int port,QMap pwm) { //qDebug() << pwm; if(port > 10) { qDebug() << "port out of range"; return; } if(!barlist.contains(port * 16 + 1)) { addGroup(port); return; } for (int var = 1; var <= 16; ++var) { QProgressBar *progress = barlist.value(port * 16 + var); if(progress) { if(pwm.contains(var)) { if(pwm.value(var) <= 800) { progress->setRange(pwm.value(var),2200); } else if(pwm.value(var) >= 2200) { progress->setRange(800,pwm.value(var)); } else { progress->setRange(800,2200); } progress->setValue(pwm.value(var)); } } } } void tools_Index4::addGroup(int port) { if(!barlist.contains(port * 16 + 1)) { QGridLayout *layout = new QGridLayout(); QGroupBox * groupbox = new QGroupBox(this); QString boxname = tr("Servos Port %1"); groupbox->setTitle(boxname.arg(port)); groupbox->setObjectName(boxname); QString name = "progressBar_%1_%2"; for (int var = 1; var <= 16; ++var) { QLabel *l = new QLabel(groupbox); QString lt = tr("ch%1"); l->setText(lt.arg(var)); l->adjustSize(); QProgressBar *progress = new QProgressBar(groupbox); progress->setObjectName(name.arg(port).arg(var)); progress->setFormat("%v"); progress->setRange(800,2200); progress->setValue(1500); barlist.insert(port * 16 + var,progress); layout->addWidget(l,var,0,1,1); layout->addWidget(progress,var,1); } groupbox->setLayout(layout); int row = 0; int column = 0; row = port / 5; column = port % 5; ui->gridLayout->addWidget(groupbox,row,column,1,1); } }