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