添加菜单栏功能

This commit is contained in:
jiayulong 2026-04-20 10:21:43 +08:00
parent a762efde08
commit b7ce81a936
4 changed files with 45 additions and 60 deletions

View File

@ -90,7 +90,7 @@ MainWindow::MainWindow(QWidget *parent) :
//关联信号槽,打开项目
connect(CallManage::getInstance(), SIGNAL(sig_Open()), this, SLOT(s_Open()));
//关联信号槽,关闭项目
connect(CallManage::getInstance(), SIGNAL(sig_CloseProject()), this, SLOT(s_CloseProject()));
//connect(CallManage::getInstance(), SIGNAL(sig_CloseProject()), this, SLOT(s_CloseProject()));
//参数卡
connect(CallManage::getInstance(), SIGNAL(sig_ShowParameterCard(QString, QString)), this, SLOT(s_ShowParameterCard(QString, QString)));
@ -216,6 +216,13 @@ void MainWindow::initTitleBar()
//
QMenu* m_projectMenu = this->menuBar()->addMenu(tr("工区管理(&F)"));
//添加子菜单
m_projectMenu->addAction(QIcon( ::GetImagePath() + "newproject.png"), tr("&新建项目"), this, SLOT(s_New()));
m_projectMenu->addAction(QIcon( ::GetImagePath() + "openprojectIcon.png"), tr("&打开项目"), this, SLOT(s_Open()));
m_projectMenu->addAction(QIcon( ::GetImagePath() + "closeprojectIcon.png"), tr("&关闭项目"), this, SLOT(s_CloseProject()));
m_projectMenu->addSeparator();
m_projectMenu->addAction(QIcon( ::GetImagePath() + "icon/Exit.png"), tr("&退出"), this, SLOT(slotExitSystem()));
//
QMenu* m_dataMenu = this->menuBar()->addMenu(tr("数据管理(&D)"));
//
@ -228,6 +235,11 @@ void MainWindow::initTitleBar()
QMenu* m_helpMenu = this->menuBar()->addMenu(tr("帮助(&H)"));
}
void MainWindow::slotExitSystem()
{
closeEvent(NULL);
}
//初始化工具栏
void MainWindow::initToolBar()
@ -235,49 +247,23 @@ void MainWindow::initToolBar()
QSize toolIconSize(18, 18);
ui->mainToolBar->setIconSize(toolIconSize); //设置工具栏图标大小
QIcon newprojectIcon(::GetImagePath()+"newproject.png");
QIcon openprojectIcon(::GetImagePath()+"openproject.png");
QIcon saveprojectIcon(::GetImagePath()+"saveproject.png");
//
QIcon wellogIcon(::GetImagePath()+"wellog.png");
QIcon outcurvesIcon(::GetImagePath()+"outcurves.png");
//
QIcon wellsectionwindowIcon(::GetImagePath()+"wellsectionwindow.png");
QIcon developmentIcon(::GetImagePath()+"development.png");
m_newprojectAc = new QAction(newprojectIcon, "新建项目", this);
m_openprojectAc = new QAction(openprojectIcon, "打开项目", this);
m_saveprojectAc = new QAction(saveprojectIcon, "保存项目", this);
m_wellsectionwindowAc = new QAction(wellsectionwindowIcon, "可视解释", this);
m_wellogAc = new QAction(wellogIcon, "数据导入", this);
m_outcurvesAc = new QAction(outcurvesIcon, "数据导出", this);
m_developmentAc = new QAction(developmentIcon, "开发工具", this);
//工具栏
ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //此种方式为文字显示在图标右侧
//add QAction to Widget.
ui->mainToolBar->addAction(m_newprojectAc);
ui->mainToolBar->addAction(m_openprojectAc);
//ui->mainToolBar->addAction(m_saveprojectAc);
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "newproject.png"), tr("&新建项目"), this, SLOT(s_New()));
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "openproject.png"), tr("&打开项目"), this, SLOT(s_Open()));
ui->mainToolBar->addSeparator();//添加分隔符
//
ui->mainToolBar->addAction(m_wellogAc);
ui->mainToolBar->addAction(m_outcurvesAc);
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "wellog.png"), tr("&数据导入"), this, SLOT(s_wellog()));
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "outcurves.png"), tr("&数据导出"), this, SLOT(s_outcurves()));
ui->mainToolBar->addSeparator();//添加分隔符
//
ui->mainToolBar->addAction(m_wellsectionwindowAc);
ui->mainToolBar->addAction(m_developmentAc);
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "wellsectionwindow.png"), tr("&可视解释"), this, SLOT(s_showView()));
ui->mainToolBar->addAction(QIcon( ::GetImagePath() + "development.png"), tr("&开发工具"), this, SLOT(s_development()));
connect(m_newprojectAc, &QAction::triggered, this, &MainWindow::s_New);
connect(m_openprojectAc, &QAction::triggered, this, &MainWindow::s_Open);
connect(m_saveprojectAc, &QAction::triggered, this, &MainWindow::s_SaveProject);
connect(m_wellsectionwindowAc, &QAction::triggered, this, &MainWindow::s_showView);
connect(m_developmentAc, &QAction::triggered, this, &MainWindow::s_development);
// connect(m_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne);
// connect(m_runAc, &QAction::triggered, this, &MainWindow::s_SaveImage);
// connect(m_debugAc, &QAction::triggered, this, &MainWindow::s_DrawImg);
// connect(m_loadAc, &QAction::triggered, this, &MainWindow::s_DrawLine);
QTimer::singleShot(500, this, [=]() {
QString fileFull = GetProjectFolder() + "例子.wwl";
QFileInfo fileInfo(fileFull);
@ -584,13 +570,13 @@ void MainWindow::s_showView()
void MainWindow::s_development()
{
//暂时用作切换3d绘制波列图的切换按钮
if(g_iSupport3D==0)
{
g_iSupport3D=1;
}
else {
g_iSupport3D=0;
}
// if(g_iSupport3D==0)
// {
// g_iSupport3D=1;
// }
// else {
// g_iSupport3D=0;
// }
}
void MainWindow::s_Risize()
@ -636,16 +622,15 @@ void MainWindow::s_DrawLine()
void MainWindow::s_CloseProject()
{
if(m_centerWidgets)
{
int iCount = m_centerWidgets->count();
for(int i=0; i<iCount; i++)
{
m_centerWidgets->removeTab(0);
}
}
//关闭老项目
g_prjname="";
bool bClosed = closeProject();
if(!bClosed)
{
return;
}
//关闭
emit CallManage::getInstance()->sig_CloseProject();
}
//参数卡数据查看

View File

@ -35,16 +35,6 @@ private:
Ui::MainWindow *ui;
public:
//工具栏
QAction* m_newprojectAc = nullptr; //新建
QAction* m_openprojectAc = nullptr; //打开
QAction* m_saveprojectAc = nullptr; //保存
//
QAction* m_wellogAc = nullptr; //数据导入
QAction* m_outcurvesAc = nullptr; //数据导出
QAction* m_wellsectionwindowAc = nullptr;//可视解释
QAction* m_developmentAc = nullptr; //开发工具
//停靠栏
QStackedWidget *m_stackedWidget_Center = nullptr;//中间工作区stack
//QDockWidget *m_projectView = nullptr; //左侧工程区
@ -80,6 +70,7 @@ public slots:
void s_Open();
void s_SaveProject();
void s_CloseProject();
void slotExitSystem();
void s_Risize();
void s_AddOne();

View File

@ -55,6 +55,9 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent)
connect(CallManage::getInstance(), SIGNAL(sig_NewProject()), this, SLOT(s_NewProject()));
//关联信号槽,打开评估工程
connect(CallManage::getInstance(), SIGNAL(sig_OpenProject(QString)), this, SLOT(s_OpenProject(QString)));
//关联信号槽,关闭项目
connect(CallManage::getInstance(), SIGNAL(sig_CloseProject()), this, SLOT(s_CloseProject()));
//向左侧树图,追加固井结论表格
connect(CallManage::getInstance(), SIGNAL(sig_AddGujingToTree(QString,QString,QString)), this, SLOT(s_AddGujingToTree(QString,QString,QString)));
@ -1081,6 +1084,11 @@ void QtProjectWidgets::s_OpenProject(QString fileFull)
s_loadTreeWidget(fileFull);
}
void QtProjectWidgets::s_CloseProject()
{
ui->treeWidget->clear();//清理数据
}
//参数表数据查看
void QtProjectWidgets::onShowParameterCard(bool checked)
{

View File

@ -45,6 +45,7 @@ public slots:
//
void s_NewProject(); //新建项目
void s_OpenProject(QString fileFull); //打开项目
void s_CloseProject(); //关闭项目
//参数表
void onShowParameterCard(bool checked = false);//数据查看
//曲线