Files
gcs-nf/App/ToolsUI/tools_Index4/tools_Index4.cpp
T

164 lines
3.3 KiB
C++

#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<int,uint16_t> 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);
}
}