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


      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动态添加删除控件的方法
  • 相关阅读:
    ScRegSetValueExW 调用无法运行 Type: 拒绝访问
    Windows Server 2016在服务器管理器仪表板中下载Maps Manager延迟启动红色
    no crontab for root
    SqlException: Invalid column name 'Rating'
    sqlserver游标模板
    JS屏蔽右键菜单刷新或F5刷新页面
    动态修改webconfig
    微信小程序常见的UI框架/组件库总结
    sql连表更新
    web弹出层框架 -- layer
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14595260.html
Copyright © 2020-2023  润新知