#include "tools_Index4.h" #include "ui_tools_Index4.h" tools_Index4::tools_Index4(QWidget *parent) : QWidget(parent), ui(new Ui::tools_Index4) { ui->setupUi(this); m_parent = parent; //检测文件夹,如果不存在,那么就新建一个,这里存着所有的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); //loadCommandJson("./Init/Init.json"); } tools_Index4::~tools_Index4() { foreach (QProgressBar *bar, barlist) { if(bar) { delete bar; } } delete ui; } void tools_Index4::closeEvent(QCloseEvent *event) { setFloat(); event->ignore(); } void tools_Index4::contextMenuEvent(QContextMenuEvent *event) { QMenu *menu = new QMenu(this); QAction *pAction = new QAction("float",this); connect(pAction,SIGNAL(triggered(bool)), this,SLOT(setFloat())); menu->addAction(pAction); menu->move(cursor().pos()); menu->show(); } void tools_Index4::setFloat(void) { if(this->parent()) { this->setParent(nullptr); this->move(50,50); this->resize(800,480); this->show(); } else { this->setParent(m_parent); this->setGeometry(m_parent->geometry()); this->move(0,0); this->hide(); } } 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); int index = var; if(progress) { if(pwm.value(index) <= 800) { progress->setRange(pwm.value(index),2200); } else if(pwm.value(index) >= 2200) { progress->setRange(800,pwm.value(index)); } else { progress->setRange(800,2200); } progress->setValue(pwm.value(index)); } } } 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->setText(lt.arg(port * 16 + 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); } }