156 lines
4.3 KiB
C++
Raw Normal View History

2024-11-25 17:15:44 +08:00
#include "musclebutton.h"
#include "ui_musclebutton.h"
#include <QDebug>
#include <QMouseEvent>
#include <QPaintEvent>
#include <QGraphicsDropShadowEffect>
#include <QPixmap>
MuscleButton::MuscleButton(QWidget *parent) :
QWidget(parent),
ui(new Ui::MuscleButton),
isConnected(false)
{
ui->setupUi(this);
// QGraphicsDropShadowEffect * shadowEffect = new QGraphicsDropShadowEffect();
// shadowEffect->setYOffset(2);
// shadowEffect->setBlurRadius(12);
// shadowEffect->setColor(QColor(0,0,0,51));
// this->setGraphicsEffect(shadowEffect);
st_muscleParam.muscleId = 0;
}
MuscleButton::~MuscleButton()
{
delete ui;
}
void MuscleButton::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
}
void MuscleButton::mousePressEvent(QMouseEvent *event)
{
Q_UNUSED(event)
emit muscleButtonClicked(m_id);
}
void MuscleButton::setMuscleParamButton(const ST_MuscleParam& param)
{
//左右肌肉图标
QString limpFlag;
if(param.muscleId > 30)
{
limpFlag= "";
}
else if(param.muscleId <= 15)
limpFlag = ":/DependFile/Source/channel/left.png";
else
limpFlag = ":/DependFile/Source/channel/right.png";
QPixmap pixmap;
pixmap.load(limpFlag);
ui->Image_Label->setPixmap(pixmap);
ui->muscle_Label->setText(param.muscleName );
ui->current_Label->setText(QString::number(param.minCurrent)+"~"+QString::number(param.maxCurrent) + "mA");
ui->plus_Label->setText(QString::number(param.plus) + "us");
ui->frequency_Label->setText(QString::number(param.frequency) + "Hz");
st_muscleParam = param;
}
void MuscleButton::setBLEBattery(uint8_t battery)
{
QPixmap pixmap;
QString img;
//qDebug() <<"电量:"<<battery;
//battery = 50;
if(battery <= 0)
img = ":/DependFile/Source/Fes/battery_0.png";
else if(0 < battery && battery < 25)
img = ":/DependFile/Source/Fes/battery_25.png";
else if(25 <= battery && battery < 50)
img = ":/DependFile/Source/Fes/battery_50.png";
else if(50 <= battery && battery < 75)
img = ":/DependFile/Source/Fes/battery_75.png";
else if(75<= battery && battery <= 100)
img = ":/DependFile/Source/Fes/battery_100.png";
pixmap.load(img);
ui->BLEBattery_Label->setPixmap(pixmap);
}
void MuscleButton::initWidget(QString title,int id)
{
ui->channel_Label->setText(title);
m_id = id;
}
void MuscleButton::setMuscleEnabled(bool enabled)
{
isConnected = enabled;
QString enabledStyle = "#groupBox{background: #E4F4FC;"
"border-radius: 6px;}";
QString disenabledStyle = "#groupBox{background: #EFEFEF;border-radius: 6px;}";
if(enabled)
ui->groupBox->setStyleSheet(enabledStyle);
else
ui->groupBox->setStyleSheet(disenabledStyle);
}
ST_MuscleParam MuscleButton::getMuscleParam()
{
ST_MuscleParam st_tmpMuscleParam;
st_tmpMuscleParam.frequency = ui->frequency_Label->text().remove("Hz").toInt();
st_tmpMuscleParam.plus = ui->plus_Label->text().remove("us").toInt();
QStringList currentList= ui->current_Label->text().remove("mA").split("~");
st_tmpMuscleParam.connectState = isConnected;
if(currentList.count() >1)
{
st_tmpMuscleParam.minCurrent = currentList.first().toInt();
st_tmpMuscleParam.maxCurrent = currentList.last().toInt();
}
st_tmpMuscleParam.muscleName = ui->muscle_Label->text();
st_tmpMuscleParam.muscleId = st_muscleParam.muscleId;
return st_tmpMuscleParam;
}
void MuscleButton::setConnectState(bool state)
{
QPixmap pixmap;
QString img;
if(state)
img = ":/DependFile/Source/channel/connected.png";
else
img = ":/DependFile/Source/channel/disconnected.png";
pixmap.load(img);
ui->connectState_Label->setPixmap(pixmap);
}
void MuscleButton::setCheckedFesType(E_FES_PAGE E_fesType)
{
if(E_fesType == ONLY_FES_E)
{
ui->muscle_Label->setVisible(false);
ui->Image_Label->setVisible(false);
}
else if(E_fesType == BICYCLE_FES_E)
{
ui->muscle_Label->setVisible(true);
ui->Image_Label->setVisible(true);
}
}
void MuscleButton::changeEvent(QEvent* event)
{
switch (event->type())
{
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
QWidget::changeEvent(event);
break;
}
}