很复杂的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);

}

相关推荐
无限进步_4 小时前
【C++】只出现一次的数字 II:位运算的三种解法深度解析
数据结构·c++·ide·windows·git·算法·leetcode
0xDevNull5 小时前
Windows系统使用nvm实现多版本切换Node.js详细教程
windows·node.js
无限进步_5 小时前
【C++】多重继承中的虚表布局分析:D类对象为何有两个虚表?
开发语言·c++·ide·windows·git·算法·visual studio
_Evan_Yao5 小时前
别让“规范”困住你:前后端交互中的方法选择与认知突围
java·后端·交互·restful
学Linux的语莫6 小时前
Hyper-V的安装使用
linux·windows·ubuntu·hyper-v
xiaoshuaishuai87 小时前
C# 方言识别
开发语言·windows·c#
十五年专注C++开发9 小时前
cpolar(极点云): 一款主流的内网穿透工具
linux·windows·cpolar·穿透
非凡ghost9 小时前
AIMP(音乐播放软件)
前端·windows·音视频·firefox
xifangge20259 小时前
【2026终极解法】彻底解决“由于找不到 msvcp140.dll,无法继续执行代码”报错(附微软运行库一键修复包)
windows·mysql·microsoft·报错·开发环境
摇滚侠10 小时前
Windows 查看占用端口的进程,并关闭进程
windows