用户选择界面

就我们在实际开发的时候可能需要面对这样一个界面

做个demo试试看

其实我们可以分解一下这个界面

就是除了控制相关的内容,最主要的就是这个界面之上,有一个个动态的输入的控件,上面都是学生的信息、头像等等数据,而且这个数据是动态变化的,也就是说主框架来条消息,我这个exe里的数据就要变动

那问题来了,这个部分怎么实现呢?不可能是让代码去一个个把空年间直接定位,这显然不显示,所以要用更自动化的方法-->栅格布局和scrollArea

栅格布局不用多说,就是可以栅格化摆放控件的一种布局,是Qt特有的部分

而scrollArea则是一个特殊的控件,在里面的内容如果超过当前scrollArea,则会令该控件自适应地生成滚动条

在实际开发中遇到了几个问题:

1.实际操作中,我们该如何使用栅格布局?

因为初始的时候我们在整个代码中是不带元素的,所以不能提前在我们需要的地方提前布置上栅格布局,这也为我们后面的一个问题出现奠定了基础。

由上,在实际的开发中栅格布局只能通过代码实现。我们在类中声明一个栅格布局的指针:

注意c++中的指针一定要给空间,也就是后面的这个new QGridLayout()是必须的,否则可能会导致一些不必要的错误信息出现。

因为我们的layout是给的指针,所以如果中途没有单独析构,那么整个指针会存续整个软件的生命周期中,所以我们实际开发中只需要对需要用到该布局的部分进行->setLayout(QLayout *) 操作即可。

2.向layout中添加部件

首先我们要确定layout每个部件的宽度,也就是最小大小。不然在实际的开发过程中,layout特性很可能就会导致宽度不够从而使得部件挤在一起,所以我们需要设置一下

这里有个问题,就是每行每列的长度都只能单独设定,两个方法中的参数,一个是当前行、列,第二个才是具体的数值。而不是设定一个总的外推到所有的行列,所以在这里我们也是每次更新数据的时候就修改一次即可。

添加部件的方法很简单,就是向其中输入命令,包含需要输入的widget,第几行,第几列。这里输入的temp是我自定义的控件

3.给scrollArea绑定了gridlayout,并向其中输入了控件之后,为什么没出现进度条?

因为scrollArea并不是一个独立的控件,其包含两部分,一部分是gridlayout本体,还有一个部分是scrollAreaWidgetContents,这是一个附属的widget控件,真正的内容要输入到scrollAreaWidgetContents中才可以自动地生成进度条,否则就不行

也就是说不论是我们的QGridLayout还是别的什么,都应该是直接输入到scrollAreaWidgetContents,这样就不会出现之前的问题了,控件也可以正常运行了。

7-3修改

其实完全没必要用gridlayout来进行这个修改,事实上有一个更简单的方法,就是直接一个个的插入widget,然后对应的位置就直接给它指定了(注:我们这里的窗体大小是要求不能变化的,如果要要求可以变化,则还是需要用到layout)

具体可以上代码

如果需要遍历整个ScrollArea的话,则可以如下:

Qt栅格布局、ScrollArea和用户选择界面的更多相关文章

  1. Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计

    在上篇总结随笔<Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用>介绍了权限管理模块的用户管理部分,其中主要介绍了其中的用户所属公司 ...

  2. 编写Java程序,使用Swing布局管理器与常用控件,实现用户登录界面

    返回本章节 返回作业目录 需求说明: 使用Swing布局管理器与常用控件,实现用户登录界面 实现思路: 创建用户登录界面的类LoginFrame,在该类中创建无参数的构造方法,在构造方法中,设置窗体大 ...

  3. Bootstrap 框架 栅格布局系统设计原理

    如果你是初次接触Bootstrap,你一定会为它的栅格布局感到敬佩.事实上,这个布局系统提供了一套响应式的布局解决方案. 既然这么好用,那他是如何用CSS来实现的呢? 我特意去Bootstrap官方下 ...

  4. android中选择控件与选择界面自然过度效果的实现--一种新的交互设计

    转载请标明出处: http://blog.csdn.net/jianghejie123/article/details/40648931 在安卓中经常遇到须要选择一个东西的功能,比方选择日期.选择文件 ...

  5. 【转及总结】Bootstrap 框架 栅格布局系统底层设计原理

    如果你是初次接触Bootstrap,你一定会为它的栅格布局感到敬佩.事实上,这个布局系统提供了一套响应式的布局解决方案. 既然这么好用,那他是如何用CSS来实现的呢? 我特意去Bootstrap官方下 ...

  6. [Qt Creator 快速入门] 第8章 界面外观

    一个完善的应用程序不仅应该有实用的功能,还要有一个漂亮的外观,这样才能使应用程序更加友好,更加吸引用户.作为一个跨平台的UI开发框架,Qt提供了强大而灵活的界面外观设计机制.这一章将学习在Qt中设计应 ...

  7. Android6.0动态申请权限那些坑--以及避免用户选择不再提示后无法获取权限的问题

    Android 6.0 为了保护用户隐私,将一些权限的申请放在了应用运行的时候去申请, 比如以往的开发中,开发人员只需要将需要的权限在清单文件中配置即可,安装后用户可以在设置中的应用信息中看到:XX应 ...

  8. Qt Quick 布局介绍

    在 Qt Quick 中有两套与布局管理相关的类库,一套叫作 Item Positioner(定位器),一套叫作 Item Layout(布局). 定位器包括 Row(行定位器).Column(列定位 ...

  9. uniapp+nvue实现仿微信/得物相册插件:选择界面 +自定义相册+图片视频过滤

    本篇文章基于uniapp 框架+ nvue,实现了uniapp仿微信/得物相册选择功能实例项目,该插件实例实现了以下功能: 1: 相册过滤 2: 图视频过滤 3: 界面UI定制化 4: 栅格列数定制化 ...

  10. WPF整理-使用用户选择主题的颜色和字体

    “Sometimes it's useful to use one of the selected colors or fonts the user has chosen in theWindows ...

随机推荐

  1. 关于aws cli命令的exit/return code分析

    最近总是收到一个备份脚本的失败邮件,脚本是之前同事写的,没有加入任何有调试信息,及有用的日志 于是去分析 ,脚本中有一条 aws s3 sync $srclocal  $dsts3 命令,然后根据这条 ...

  2. Educational Codeforces Round 106 (Rated for Div. 2)

    就ac了2题... A题一开始题意模模糊糊的似懂非懂,然后自己按样例推出了题意,简单题很容易ac了.还是自己的英语水平太菜了.... B题根据0和1的位置关系能看出来,因为0不能在1后面, 所以有00 ...

  3. 洛谷P3397 地毯(差分)

    二维平面上的差分,我们可以对每行处理. 比如我们要把(2,2)(5,5)之间的矩形加上1,可以这样处理. 0 0 0 0 0 0 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 +1 0 ...

  4. 方法的重载(overload)

    1.定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可. "两同一不同":同一个类.相同方法名 参数列表不同:参数个数不同,参数类型不同 2.举 ...

  5. 16.MongoDB系列之分片管理

    1. 查看当前状态 1.1 查看配置信息 mongos> use config // 查看分片 mongos> db.shards.find() { "_id" : & ...

  6. C语言编译环境中的 调试功能及常见错误提示

    文章目录 1 .调试功能 2 . 编译中的常见错误例析 3 .常见错误信息语句索引 1 .调试功能 1.常用健 <F10> : 激活系统菜单 <F6> : 将光标在编辑窗口和. ...

  7. 题解 UVA10285 最长的滑雪路径 Longest Run on a Snowboard

    Solution 双倍经验 就是记搜嘛. 搞一个二维数组记录一下当前的最长滑雪路径,其他和普通 dfs 没什么两样. 向 \(4\) 个方向搜索,如果高度符合就 \(+1\) . 多测要注意数组初始化 ...

  8. webRTC demo

    准备: 信令服务 前端页面用于视频通话 demo github 地址. 前端页面 为了使 demo 尽量简单,功能页面如下,即包含登录.通过对方手机号拨打电话的功能.在实际生成过程中,未必使用的手机号 ...

  9. Codeforces Round #812 (Div. 2) E(并查集)

    种类并查集:定义种类之间的关系来判断操作是否进行 题目大意:对于题目给出的一个矩阵,我们可以进行一种操作:swap(a[i][j],a[j][i]) 使得矩阵可以变换为字典序最小的矩阵 思路: 通过扫 ...

  10. jmeter时间戳

    时间戳这东西,在jmeter中会经常用到,自己又总是记不住,做个记录. jmeter自带的时间戳函数: ① ${__time(yyyy-MM-dd,)}  ,对应时间示例:2022-09-24 ② $ ...