From 873bee7e7b9b9cf94682a1e3379dc0df3f8e4dbc Mon Sep 17 00:00:00 2001 From: jiegeaiai Date: Tue, 11 Feb 2025 00:27:16 +0800 Subject: [PATCH] modify menu window --- doc/dyt修改.txt | 2 +- src/translations/Dyt_zh_CN.ts | 8 ++++---- src/ui/MainFrame.cpp | 4 ++-- src/ui/Menu/SystemManagerMenu.cpp | 17 +++++++++++++++-- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/doc/dyt修改.txt b/doc/dyt修改.txt index 90e2a52b..ab374932 100644 --- a/doc/dyt修改.txt +++ b/doc/dyt修改.txt @@ -15,7 +15,7 @@ 4.需要连续用到的操作、功能类似的放到一个大界面。这些不知道具体怎么分就需要讨论细分一下比如: 功能控制一样的:窗口管理和ui设置都是控制界面的放到同一个栏目 解决方案 - a、窗口管理放到系统管理里面,点击按钮,弹出菜单可以勾选 + a、窗口管理放到系统管理里面,点击按钮,弹出菜单可以勾选 (解决) 操作步骤连续的:①参数编辑②MatlabParam文件关联③SimMatlab关联④运行.m文件。这些放到一块方便操作 解决方案 diff --git a/src/translations/Dyt_zh_CN.ts b/src/translations/Dyt_zh_CN.ts index 0b2572cd..c9d5d2b2 100644 --- a/src/translations/Dyt_zh_CN.ts +++ b/src/translations/Dyt_zh_CN.ts @@ -474,9 +474,8 @@ 回放管理 - window manager - 窗口管理 + 窗口管理 @@ -1641,16 +1640,17 @@ + ui setting ui设置 - + question 询问 - + are you sure to exit 确定退出 diff --git a/src/ui/MainFrame.cpp b/src/ui/MainFrame.cpp index b4bbfe7c..0fefd328 100644 --- a/src/ui/MainFrame.cpp +++ b/src/ui/MainFrame.cpp @@ -109,8 +109,8 @@ void MainFrame::InitUI() { PlayManagerMenu* playMenu = new PlayManagerMenu(this); AddMenuWidget("play_manager", tr("play manager"), playMenu); - WindowManagerMenu* windowMenu = new WindowManagerMenu(this); - AddMenuWidget("window_manager", tr("window manager"), windowMenu); + //WindowManagerMenu* windowMenu = new WindowManagerMenu(this); + //AddMenuWidget("window_manager", tr("window manager"), windowMenu); SystemManagerMenu* system_ = new SystemManagerMenu(this); AddMenuWidget("system_manager", tr("system manager"), system_); diff --git a/src/ui/Menu/SystemManagerMenu.cpp b/src/ui/Menu/SystemManagerMenu.cpp index 3936e30d..892d31e0 100644 --- a/src/ui/Menu/SystemManagerMenu.cpp +++ b/src/ui/Menu/SystemManagerMenu.cpp @@ -24,6 +24,17 @@ SystemManagerMenu::~SystemManagerMenu() { void SystemManagerMenu::AddDockWidget(class DockWidget* dockWidget) { QAction* action = new QAction(dockWidget->windowTitle(), this); + connect(dockWidget, &DockWidget::windowTitleChanged, [action](const QString& title) { + action->setText(title); + } + ); + action->setCheckable(true); + action->setChecked(!dockWidget->isVisible()); + connect(action, &QAction::triggered, [dockWidget, action]() { + dockWidget->setVisible(action->isChecked()); + } + ); + windowManagerMenu_->addAction(action); } void SystemManagerMenu::RemoveDockWidget(class DockWidget* dockWidget) { @@ -32,7 +43,9 @@ void SystemManagerMenu::RemoveDockWidget(class DockWidget* dockWidget) { void SystemManagerMenu::InitConnect() { connect(ui->menu_exit, &QToolButton::clicked, this, &SystemManagerMenu::OnExit); - connect(ui->menu_window_manager, &QToolButton::clicked, this, &SystemManagerMenu::OnWindowManagerMenu); + //ui->menu_window_manager->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->menu_window_manager, &QToolButton::clicked, + this, &SystemManagerMenu::OnWindowManagerMenu); connect(ui->menu_uisetting, &QToolButton::clicked, this, &SystemManagerMenu::signalShowUISetting); } @@ -48,5 +61,5 @@ void SystemManagerMenu::OnExit() { void SystemManagerMenu::OnWindowManagerMenu() { // Ӵڹ˵ LOG_INFO("add window manager menu"); - + windowManagerMenu_->exec(QCursor::pos()); }