void view::initAction() {
/**
* @brief 工具栏
*/
auto bar = new QToolBar(this);
bar->setStyleSheet("background-color:lightGray;");
/**
* @brief Action分组
*/
auto group = new QActionGroup(this);
/**
* @brief 选择模式
*/
auto selection = new QAction(bar);
selection->setIcon(QIcon(":/mouse.png"));
selection->setText(tr("Selection"));
selection->setShortcut(QKeySequence::Cancel);
selection->setCheckable(true);
selection->setChecked(true);
connect(selection, &QAction::triggered, this, &view::draw_none);
bar->addAction(selection);
group->addAction(selection);
/**
* @brief 绘制矩形
*/
auto drawRect = new QAction(bar);
drawRect->setIcon(QIcon(":/rect.png"));
drawRect->setText(tr("Add Rect"));
drawRect->setCheckable(true);
connect(drawRect, &QAction::triggered, this, &view::draw_rect);
bar->addAction(drawRect);
group->addAction(drawRect);
/**
* @brief 绘制椭圆
*/
auto drawEllipse = new QAction(bar);
drawEllipse->setIcon(QIcon(":/ellipse.png"));
drawEllipse->setText(tr("Add Ellipse"));
drawEllipse->setCheckable(true);
connect(drawEllipse, &QAction::triggered, this, &view::draw_ellipse);
bar->addAction(drawEllipse);
group->addAction(drawEllipse);
/**
* @brief 绘制文本
*/
auto drawText = new QAction(bar);
drawText->setIcon(QIcon(":/text.png"));
drawText->setText(tr("Add Text"));
drawText->setCheckable(true);
connect(drawText, &QAction::triggered, this, &view::draw_text);
bar->addAction(drawText);
group->addAction(drawText);
/**
* @brief 绘制节点
*/
auto drawJunction = new QAction(bar);
drawJunction->setIcon(QIcon(":/point.png"));
drawJunction->setText(tr("Add Junction"));
drawJunction->setCheckable(true);
connect(drawJunction, &QAction::triggered, this, &view::draw_junction);
bar->addAction(drawJunction);
group->addAction(drawJunction);
/**
* @brief 绘制直线
*/
auto drawLine = new QAction(bar);
drawLine->setIcon(QIcon(":/line.png"));
drawLine->setText(tr("Add Line"));
drawLine->setCheckable(true);
connect(drawLine, &QAction::triggered, this, &view::draw_line);
bar->addAction(drawLine);
group->addAction(drawLine);
/**
* @brief 绘制连接线
*/
auto drawConnectLine = new QAction(bar);
drawConnectLine->setIcon(QIcon(":/cline.png"));
drawConnectLine->setText(tr("Add Connect Line"));
drawConnectLine->setCheckable(true);
connect(drawConnectLine, &QAction::triggered, this, &view::draw_connect_line);
bar->addAction(drawConnectLine);
group->addAction(drawConnectLine);
/**
* @brief 绘制母线
*/
auto drawMainLine = new QAction(bar);
drawMainLine->setIcon(QIcon(":/line.png"));
drawMainLine->setText(tr("Add Main Line"));
drawMainLine->setCheckable(true);
connect(drawMainLine, &QAction::triggered, this, &view::draw_main_line);
bar->addAction(drawMainLine);
group->addAction(drawMainLine);
/**
* @brief 导入图片
*/
auto importImage = new QAction(bar);
importImage->setIcon(QIcon(":/image.png"));
importImage->setText(tr("Import Image"));
connect(importImage, &QAction::triggered, this, &view::import_image);
bar->addAction(importImage);
/**
* @brief 水平布局
*/
QHBoxLayout* layout = new QHBoxLayout(this);
layout->addWidget(bar, 0, Qt::AlignTop | Qt::AlignHCenter);
setLayout(layout);
}
[Qt] QGraphicsView浮动工具栏代码记录
最新推荐文章于 2024-07-25 12:59:51 发布