256 lines
7.8 KiB
C++
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();
|
||
|
|
}
|