很复杂的UI交互操作系统Advanced-Docking-System

看了几天了,内存溢出的问题修复完成了,开源的项目Advanced-Docking-System想不到这么多问题,bugfix真要命,关键GitHub上stars还挺多的,原作者估计不想维护了,毕竟bug太多了

这几天把菜单理了一下,之前的作者写得太乱了,太难读了,代码冗余太多了,这几天再改bug,算当作学习之用吧

///

DockAreaTitleBar.cpp 只有TitleBar操作CDockAreaWidget

//============================================================================

void CDockAreaTitleBar::onPinGroupToActionClicked()//Pin Group to

{

int Location = sender()->property(internal::LocationProperty).toInt();

d->DockAreaWidget->toggleAutoHide((SideBarLocation)Location);

}

void CDockAreaWidget::toggleAutoHide(SideBarLocation Location)

{

//if (!isAutoHideFeatureEnabled())已经启用了AutoHideFeatureEnabled

//{

// return;

//}

setAutoHide(!isAutoHide(), Location);

}

/

//autohideTab.cpp,操作CDockWidget

//============================================================================

void CAutoHideTab::onUnpinActionClicked()

{//这个是鼠标右键弹出菜单Unpin的槽函数,参数false表示把一个autohide页面变成dock页面,位置默认为SideBarNone

d->DockWidget->setAutoHide(false);

}

void CAutoHideTab::onPinToActionClicked()

{

//这个是鼠标右键弹出菜单Pin to的Slots函数,参见上面的contextMenuEvent函数

int Location = sender()->property(internal::LocationProperty).toInt();//Location由Pin to子菜单决定

//pin一个autohide页面,位置为Location

d->DockWidget->setAutoHide(true, (SideBarLocation)Location);

}

//DockWidgetTab.cpp,操作CDockWidget

//===========================================================================

void CDockWidgetTab::onPinToActionClicked()

{这个是鼠标右键弹出菜单Pin to的Slots函数,参见上面的contextMenuEvent函数

int Location = sender()->property(internal::LocationProperty).toInt();

d->DockWidget->toggleAutoHide((SideBarLocation)Location);

}

void CDockWidget::toggleAutoHide(SideBarLocation Location)//called by CDockWidgetTab::pinAutoHideDockWidget()

{

//if (!CDockManager::testAutoHideConfigFlag(CDockManager::AutoHideFeatureEnabled))//zxb

//{

// return;

//}

setAutoHide(!isAutoHide(), Location);

}

相关推荐
hudawei9966 小时前
TweenAnimationBuilder和AnimatedBuilder两种动画的比较
flutter·ui·动画·tweenanimation·animatedbuilder
依米阳光087 小时前
Playwright MCP AI实现自动化UI测试
ui·自动化·playwright·mcp
梦帮科技10 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
Lois_Luo11 小时前
关闭Win10强制所有应用以管理员身份运行
windows
luoyayun36111 小时前
实现Windows系统标题栏颜色跟随主题动态切换
windows·系统标题栏颜色·标题栏颜色
猫头虎12 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
芷栀夏12 小时前
CANN 仓库实战:用 DrissionPage 构建高效、稳定的 UI 自动化测试框架
ui·aigc·transformer·cann
方见华Richard14 小时前
世毫九实验室(Shardy Lab)研究成果清单(2025版)
人工智能·经验分享·交互·原型模式·空间计算
微祎_14 小时前
Flutter for OpenHarmony:构建一个 Flutter 平衡球游戏,深入解析动画控制器、实时物理模拟与手势驱动交互
flutter·游戏·交互
爱喝白开水a15 小时前
前端AI自动化测试:brower-use调研让大模型帮你做网页交互与测试
前端·人工智能·大模型·prompt·交互·agent·rag