Qt笔记:的初次使用Qt-Advanced-Docking-System

1. 简单探索

CDockContainerWidget下管理着一些CDockAreaWidget,

CDockAreaWidget管理者一些CDockWidget,

CDockWidget管理者用户创建的具体窗口。

CDockManager继承自CDockContainerWidget,

CDockManager本身管理着一些CDockContainerWidget,CFloatingDockContainer

其中CFloatingDockContainer管理着一些浮动窗口,浮动窗口以独立窗口形式存在(带标题栏、边框),不嵌入主窗口内部

部分类图

2. 简单使用

一般主框架下建一个CDockManager的对象,然后通过这个对象管理Dock窗口。以下是使用示例,官方提供了很多示例https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System

cpp 复制代码
TestQtADS::TestQtADS(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    m_pDockManager = new ads::CDockManager(this);

    //DockWidget1
    auto pDockWidget1 = m_pDockManager->createDockWidget(QString::fromStdWString(L"标题1"), this);
    auto pLabel = new QLabel("fdsafdasf");
    pDockWidget1->setWidget(pLabel);
    pDockWidget1->setFeature(ads::CDockWidget::DockWidgetDeleteOnClose, false);

    //DockWidget2
    auto pDockWidget2 = m_pDockManager->createDockWidget(QString::fromStdWString(L"标题2"), this);
    auto pTableWidget = new QTableWidget();
    pTableWidget->setColumnCount(5);
    pTableWidget->setRowCount(10);
    pDockWidget2->setWidget(pTableWidget);
    pDockWidget2->setFeature(ads::CDockWidget::DockWidgetDeleteOnClose, true);

    //DockWidget3
    auto pDockWidget3 = m_pDockManager->createDockWidget(QString::fromStdWString(L"标题3"), this);
    auto pTableView3 = new MyTableView();
    pDockWidget3->setWidget(pTableView3);
    pDockWidget3->setFeature(ads::CDockWidget::DockWidgetDeleteOnClose, false);

    //按指定方式停靠
    auto pExisitingDockArea = m_pDockManager->addDockWidget(ads::DockWidgetArea::CenterDockWidgetArea, pDockWidget1);
    m_pDockManager->addDockWidget(ads::DockWidgetArea::CenterDockWidgetArea, pDockWidget2, pExisitingDockArea);
    m_pDockManager->addDockWidget(ads::DockWidgetArea::CenterDockWidgetArea, pDockWidget3, pExisitingDockArea);

    // Add the toggleViewAction of the dock widget to the menu to give
    // the user the possibility to show the dock widget if it has been closed
    auto pMenuView = ui.menuBar->addMenu("View");
    pMenuView->addAction(pDockWidget1->toggleViewAction());
    pMenuView->addAction(pDockWidget2->toggleViewAction());
    pMenuView->addAction(pDockWidget3->toggleViewAction());
}

3. 运行截图

相关推荐
一只豌豆象1 个月前
【经验&技巧】ADS中如何快速获取信号瞬态仿真眼图?
经验分享·硬件工程·ads·使用技巧·眼图·瞬态仿真
xiayutian_c8 个月前
S4D480 S4HANA 基于PDF的表单打印
pdf·ads·output
林清海笙10 个月前
【ADS射频电路学习笔记】1. ADS基本操作
ads·射频电路设计·射频电路仿真
weifengdq2 年前
TC397 Tasking CMake Gitlab CI CD 环境配置
ci/cd·gitlab·ads·cmake·aurix·tasking·tc397
一只豌豆象2 年前
如何正确使用高速探头前端--probe head
硬件工程·信号处理·ads·高速探头·信号仿真
程序源_hytz2 年前
《ADS2011射频电路设计与仿真实例》第一章—第六章用ads2017跟做的不同操作
信息与通信·射频工程·ads·射频
乾巽2 年前
【ADS】导入CMOS衬底文件+使用coilsys生成电感
ads·cmos·cadence·inductor