美文网首页C++
3.QT悬浮窗口及TAB窗口--Apple的学习笔记

3.QT悬浮窗口及TAB窗口--Apple的学习笔记

作者: applecai | 来源:发表于2021-07-10 11:03 被阅读0次

一,前言

之前做了基本的界面自动布局控件,以及掌握界面切换及隐藏显示的方法,可以参考我的blog:2.QT界面切换及隐藏--Apple的学习笔记。但是之前的界面是比较古老的工具界面,新的工具界面,比如IDE的工具界面,都是有悬浮窗口,可以自动拖拉位置的,比如我用的CANoe,CANape软件有选项卡,选项卡中有悬浮窗。所以我需要掌握这类界面制作方法。

二,小练习

自定义需求:制作4个tab窗口,其中一个窗口中需要支持可悬浮的窗口,并且可以自由拖动固定到布局中。

三,遇到的问题

1. 如何使用Tabwidget?
解决方法:用QTabWidget控件,参考官网tabdialog工程,可以知道每个tab可以当做一个widget界面。然后add到tabdiaglog中,布局后显示即可。关键代码如下,API使用起来还是很简单的。

tabWidget = new QTabWidget;
tabWidget->addTab(new GeneralTab(fileInfo), tr("General"));
tabWidget->addTab(new PermissionsTab(fileInfo), tr("Permissions"));
tabWidget->addTab(new ApplicationsTab(fileInfo), tr("Applications"));
......
mainLayout->addWidget(tabWidget);

2. 如何制作悬浮窗口?
解决方法:用QDockWidget控件,参考官网dockwidgets工程,使用起来也很容易,感觉雷同,都是AddWidget这样的API。

    //窗口悬浮窗口
    QDockWidget *dock = new QDockWidget(tr("Customers"), this);
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    //初始化列表框
    customerList = new QListWidget(dock);
    customerList->addItems
    ......
    //为dock窗体绑定控件
    dock->setWidget(customerList);
    //mainwindows中添加悬浮窗口,并且放置在左边
    addDockWidget(Qt::LeftDockWidgetArea, dock);
    //menu工具栏点击按钮则显示/隐藏悬浮窗口
    viewMenu->addAction(dock->toggleViewAction());

3. 悬浮窗口无法嵌套到中间
解决方法:mainwindow->setDockNestingEnabled(true);可以解决。

四,效果展示

第二个General page中有5个浮动窗口可以自由拖动。其它的界面都是之前做的,把他们打包到Widget后再添加到tab控件后就成为了这样的效果,改动很少,可扩展性不错~


image.png

五,小结

连续做了3个刻意练习,让我感觉到就是层层打包,然后api主要就是add和set。看来要做一个QT的小工具应该是比较简单的。毕竟不涉及到GUI界面重绘。

相关文章

  • 4.QT换肤功能--Apple的学习笔记

    一,前言 在3.QT悬浮窗口及TAB窗口--Apple的学习笔记[https://www.jianshu.com/...

  • 3.QT悬浮窗口及TAB窗口--Apple的学习笔记

    一,前言 之前做了基本的界面自动布局控件,以及掌握界面切换及隐藏显示的方法,可以参考我的blog:2.QT界面切换...

  • 悬浮窗口

    概述 在熊猫直播,等视频APP中,都有这样的一个功能,当退出播放界面的时候,会有一个小窗口播放视频,那么怎么实现的...

  • Android视频悬浮窗口实现

    前言 本文例子实现了点击显示悬浮窗口,同时窗口可播放视频,拖动位置,点击关闭及返回APP页面,通过例子来讲述悬浮窗...

  • word学习之word快捷键

    窗口、对话框及功能区操作 切换到下一个窗口 Alt+Tab 切换到上一个窗口 Alt+Shift+Ta...

  • Android悬浮窗口

    1、最近在做视频通话功能,用到了悬浮窗。项目代码不能随便上,写一个简单的Demo记录下!更复杂的功能,自由发挥吧!...

  • Flutter 中悬浮窗口Widget之Overlay

    在开发中常常需要一个悬浮窗口来做各种筛选,实现悬浮控件需要知道悬浮控件应该出现在什么位置以及窗口的大小,而获取悬浮...

  • Pycharm 快捷键总览

    换行 智能换行 Shift + Enter 窗口间切换 在窗口间进行切换 Ctrl + Tab

  • 你不知道的mac快捷键

    cmd+` 应用内窗口切换 cmd+tab 不同应用窗口切换大家都知道, cmd+tab 后再按 cmd+` 倒着...

  • android studio 好用的快捷键 持续更新中.....

    [TOC] ** Ctrl + Tab **打开界面切换窗口,保持按住Ctrl键,选中相应的要打开的窗口。 ** ...

网友评论

    本文标题:3.QT悬浮窗口及TAB窗口--Apple的学习笔记

    本文链接:https://www.haomeiwen.com/subject/qpqqpltx.html