Files
handleaiuinew/HanddleAI/parm/m_toolbar.cpp
T
2024-05-18 23:53:26 +08:00

256 lines
7.8 KiB
C++

#include "m_toolbar.h"
m_toolbar::m_toolbar(QWidget *parent)
:QToolBar(parent)
{
setMouseTracking(true);
}
m_toolbar::~m_toolbar(void)
{
for (auto val = 0; val < btnlist.size(); val++ )
{
if(btnlist.at(val))
{
QToolButton *ptr =const_cast<QToolButton*>(btnlist.at(val));
delete ptr;
ptr = nullptr;
}
}
qDebug() << __FUNCTION__ << " line:" << __LINE__ << " ~m_toolbar success! " ;
}
void m_toolbar::setShowFlag( bool flag )
{
if ( flag )
initButtonList();
}
void m_toolbar::initButtonList()
{
QString btnStyle = "QToolButton{background:transparent;border:0px;} "
"QToolButton:hover{background-color:rgb(27, 27, 27);}"
"QToolTip{border:1px solid rgb(50,50,50); background-color: rgb(50,50,50); color:rgb(255,255,255); font-size:12px;}"
"QToolButton:pressed{color: rgb(219,219,219);background-color:transparent;}";
QDir currPath = QApplication::applicationDirPath();
//单步执行
QToolButton *start_Ptr = new QToolButton;
start_Ptr->setIcon( QIcon(currPath.path() + "/Icon/oncerun.png"));
start_Ptr->setStyleSheet(btnStyle);
start_Ptr->setToolTip("单步执行");
start_Ptr->setFixedSize(25,25);
btnlist.append(start_Ptr);
//循环运行
QToolButton *loop_Ptr = new QToolButton;
loop_Ptr->setIcon( QIcon(currPath.path() + "/Icon/cycleButton.png") );
loop_Ptr->setStyleSheet(btnStyle);
loop_Ptr->setToolTip("循环执行");
loop_Ptr->setFixedSize(25,25);
btnlist.append(loop_Ptr);
//停止
QToolButton *stop_ptr = new QToolButton;
stop_ptr->setIcon(QIcon(currPath.path() + "/Icon/stop_n.png"));
stop_ptr->setStyleSheet(btnStyle);
stop_ptr->setToolTip("停止执行");
stop_ptr->setFixedSize(25,25);
btnlist.append(stop_ptr);
// //矩形
// QToolButton *rectPtr = new QToolButton;
// rectPtr->setIcon(QIcon(":/Image/src/rect_n.png"));
// rectPtr->setFixedSize(25,25);
// rectPtr->setStyleSheet(btnStyle);
// // rectPtr->setEnabled(false);
// btnlist.append(rectPtr);
// //多边形
// QToolButton *toolButton_polygon = new QToolButton;
// toolButton_polygon->setIcon(QIcon(":/Image/src/polygon_n.png"));
// toolButton_polygon->setFixedSize(25,25);
// toolButton_polygon->setStyleSheet(btnStyle);
// // toolButton_polygon->setEnabled(false);
// btnlist.append(toolButton_polygon);
// //圆形
// QToolButton *toolButton_circle = new QToolButton;
// toolButton_circle->setIcon(QIcon(":/Image/src/circle_n.png"));
// toolButton_circle->setFixedSize(25,25);
// toolButton_circle->setStyleSheet(btnStyle);
// // toolButton_circle->setEnabled(false);
// btnlist.append(toolButton_circle);
// //圆拟合
// QToolButton *toolButton_circle_fitting = new QToolButton;
// toolButton_circle_fitting->setIcon(QIcon(":/Image/src/circle_fitting.png"));
// toolButton_circle_fitting->setFixedSize(25,25);
// toolButton_circle_fitting->setStyleSheet(btnStyle);
// // toolButton_circle_fitting->setEnabled(false);
// btnlist.append(toolButton_circle_fitting);
// //直线拟合
// QToolButton *toolButton_line_fitting = new QToolButton;
// toolButton_line_fitting->setIcon(QIcon(":/Image/src/StraightLine.png"));
// toolButton_line_fitting->setFixedSize(25,25);
// toolButton_line_fitting->setStyleSheet(btnStyle);
// // toolButton_line_fitting->setEnabled(false);
// btnlist.append(toolButton_line_fitting);
// //显示添加的卡尺个数标签
// QLabel *label_calliper = new QLabel;
// label_calliper->setStyleSheet("color: rgb(219,219,219);");
// label_calliper->setText(tr("卡尺个数:"));
// //显示卡尺数量
// QSpinBox *toolButton_SpinBox = new QSpinBox;
// toolButton_SpinBox->setStyleSheet("color: rgb(219,219,219);background-color:transparent;");
// toolButton_SpinBox->setMaximum(100);
// toolButton_SpinBox->setValue(SpinBoxValue);
// // toolButton_SpinBox->setEnabled(false);
// QToolButton *m_Last = new QToolButton(this);
// m_Last->setIcon(QIcon(":/Image/Last_n.png"));
// m_Last->setStyleSheet(btnStyle);
// m_Last->setFixedSize(25,25);
// btnlist.append(m_Last);
// QToolButton *m_Next = new QToolButton(this);
// m_Next->setIcon(QIcon(":/Image/Next_n.png"));
// m_Next->setStyleSheet(btnStyle);
// m_Next->setFixedSize(25,25);
// btnlist.append(m_Next);
// QHBoxLayout *hBox = new QHBoxLayout;
// hBox->addWidget(label_calliper);
// hBox->addWidget(toolButton_SpinBox);
// QWidget *calliperPtr = new QWidget;
// calliperPtr->setStyleSheet("background-color:transparent");
// delete calliperPtr->layout();
// calliperPtr->setLayout(hBox);
QWidget* m_spacer = new QWidget;
m_spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
QHBoxLayout *hTopBox = new QHBoxLayout;
hTopBox->addStretch();
hTopBox->addWidget(start_Ptr);
hTopBox->addWidget(loop_Ptr);
hTopBox->addWidget(stop_ptr);
hTopBox->setSpacing(10);
hTopBox->setContentsMargins(0,0,0,0);
delete m_spacer->layout();
m_spacer->setLayout(hTopBox);
this->addWidget(m_spacer);
this->setContentsMargins(0,0,30,0);
// this->addWidget(calliperPtr);
connect(start_Ptr,SIGNAL(clicked(bool)),this,SLOT(select_state()));
connect(loop_Ptr,SIGNAL(clicked(bool)),this,SLOT(select_move()));
connect(stop_ptr,SIGNAL(clicked(bool)),this,SLOT(select_show_hide_mark()));
// connect(rectPtr,SIGNAL(clicked(bool)),this,SLOT(select_rect()));
// connect(toolButton_polygon,SIGNAL(clicked(bool)),this,SLOT(select_polygon()));
// connect(toolButton_circle,SIGNAL(clicked(bool)),this,SLOT(select_circle()));
// connect(toolButton_circle_fitting,SIGNAL(clicked(bool)),this,SLOT(select_circle_fitting()));
// connect(toolButton_line_fitting,SIGNAL(clicked(bool)),this,SLOT(select_line_measurement()));
// connect(toolButton_SpinBox, SIGNAL(valueChanged(int)),this, SLOT(select_spin_valueChanged(int)));
}
void m_toolbar::setDrawType(int type)
{
switch (type)
{
case 1:
{
btnlist.at(0)->setEnabled(true);
btnlist.at(1)->setEnabled(true);
btnlist.at(2)->setEnabled(true);
break;
}
case 2:
{
btnlist.at(3)->setEnabled(true);
btnlist.at(4)->setEnabled(true);
btnlist.at(5)->setEnabled(true);
break;
}
case 3:
{
btnlist.at(5)->setEnabled(true);
break;
}
case 4:
{
btnlist.at(6)->setEnabled(true);
break;
}
default:
break;
}
}
void m_toolbar::select_state()
{
emit selectShapeSignal(1);
}
void m_toolbar::select_move()
{
emit selectShapeSignal(2);
}
void m_toolbar::select_show_hide_mark()
{
if(flag)
{
btnlist.at(2)->setIcon(QIcon(":/Image/src/mark_b.png"));
flag = false;
}
else
{
btnlist.at(2)->setIcon(QIcon(":/Image/src/mark_n.png"));
flag = true;
}
emit selectShapeSignal(2);
}
void m_toolbar::select_rect()
{
emit selectShapeSignal(3);
}
void m_toolbar::select_polygon()
{
emit selectShapeSignal(4);
}
void m_toolbar::select_circle()
{
emit selectShapeSignal(5);
}
void m_toolbar::select_circle_fitting()
{
emit selectShapeSignal(6);
}
void m_toolbar::select_line_measurement()
{
emit selectShapeSignal(7);
}
void m_toolbar::select_spin_valueChanged(int value)
{
emit changeVaule(value);
emit selectShapeSignal(8);
}
void m_toolbar::mouseMoveEvent(QMouseEvent *event)
{
emit Change_to_CannotDragResize();
}