一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

  Qt是c++的应用程序开发框架,使用Qt能快捷地开发想要的程序。本文介绍Qt动态添加控件的方法,具体而言就是根据用户操作生成新的控件到界面,同时,相应的操作可以使得控件动态删除。

首先,我们使用Qtcreator创建一个gui工程,所有的设置使用默认即可。本例中使用的qt4.8.5进行开发。

Qt动态添加删除控件的方法

然后,打开工程中的界面文件,在界面中添加两个按钮和一个布局,具体设置效果可以通过下面的图片看到。

Qt动态添加删除控件的方法

然后,我们转到“新建”按钮的槽中,实现当鼠标点击新建按钮,自动创建一个label控件,并将之加入到下方的gridlayout中。

Qt动态添加删除控件的方法

我们转到按钮单击的槽函数,添加label创建代码如下图所示。

Qt动态添加删除控件的方法

运行程序,我们点击多次新建按钮,可以看到,在下方生成了多个label控件,当然也可以设置生成其他控件。

Qt动态添加删除控件的方法

接下来,我们要对这些控件进行删除操作,这一步是关键,一般说来,我们由于我们是通过addWidget加入到布局中的,所以我们要先调用removeWidget将这些控件移除,然后再通过delete删除控件。所以可以看出控件的指针是操作的关键,之前我们没有保存控件指针,操作中如果使用链表等保存这些控件指针将带来操作的方便。

Qt动态添加删除控件的方法

在下图中的操作中,我们先获取布局总item的数目,然后我们每次都获取一下最后一个控件的指针,之后,先异常控件,再释放控件资源。

Qt动态添加删除控件的方法

程序运行可以看到删除效果,需要注意的是,调用remove函数并不释放控件资源,如下图,没有delete的话,控件还是存在的,只是不再布局罢了。

Qt动态添加删除控件的方法
posted on   一杯清酒邀明月  阅读(2853)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2020-03-30 Qt QLineEdit 信号函数总结
2020-03-30 Qt 主窗口与子窗口之间传值
2020-03-30 Qt 如何使窗体初始最大化
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示