【QT】如何快速查找和获取界面上的控件(findChild 和 findChidren)

这篇具有很好参考价值的文章主要介绍了【QT】如何快速查找和获取界面上的控件(findChild 和 findChidren)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. findChild()函数

函数原型:

T QObject::findChild(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const

返回该对象的子对象,该子对象可以转换为类型T。
T:T为模板,需要查找什么类型就写什么类型。
name:为对象的名称
参数 Qt::FindChildOptions options:
(1)Qt::FindDirectChildrenOnly:只查看对象的直接子对象
(2)Qt::FindChildrenRecursively:查看对象的所有子对象(递归搜索)(默认值)。

例如:返回parentWidget的一个名为"button1"的子QPushButton

 QPushButton *button = parentWidget->findChild<QPushButton *>("button1");

若只有一个QPushButton,其name也可以不用指定

 QPushButton *button = parentWidget->findChild<QPushButton *>();

2. findChildren()函数

函数原型:

QList<T> QObject::findChildren(const QString &name = QString(), Qt::FindChildOptions options = Qt::FindChildrenRecursively) const

返回一个该对象的所有子对象的列表

例如:返回所有父parentWidget中所有的QpushButton

 QList<QPushButton *> parentWidget= parentWidget->findChildren<QPushButton *>();

3. 示例

查找MainWindow的菜单栏、工具栏和状态栏,并进行隐藏文章来源地址https://www.toymoban.com/news/detail-478487.html

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
    ui->setupUi(this);
    
    QMenuBar* pMenuBar = findChild<QMenuBar*>();              //通过findChild获取菜单栏
    pMenuBar->setVisible(false);                              //隐藏菜单栏
    
    QList<QToolBar*> childeList = findChildren<QToolBar*>();  //通过findChildren获取工具栏
    childeList.at(0)->setVisible(false);                      //隐藏工具栏
    
    QStatusBar* pStatusBar = findChild<QStatusBar*>();        //获取状态栏
    pStatusBar->setVisible(false);                            //隐藏状态栏
}

到了这里,关于【QT】如何快速查找和获取界面上的控件(findChild 和 findChidren)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT之多个界面相互切换 (stackedWidget控件)

    stackedWidget控件:   可以自由在多个widget切换,可以通过点击顶部菜单,显示不同界面,在实际开发中应用很广泛。 1. 添加控件, 在设计界面左侧添加 stackedWidget控件 2. 增加几个  widget 界面  3. 将这几个 widget 插入到 stackedWidget 首先定义 一个枚举量, 存放每个界面的编号

    2024年02月11日
    浏览(90)
  • C++ Qt 学习(二):常用控件使用与界面布局

    ui 设计器设计界面很方便,为什么还要手写代码? 更好的控制布局 更好的设置 qss 代码复用 完全不会写 Qt 布局,很麻烦,怎么学会手写布局? 看 Qt 自己怎么写 改良 Qt 的布局写法 1.1 水平布局 addWidget() 在布局里添加一个控件 addLayout() 在布局里添加子布局 setMargin() 设置水平

    2024年02月06日
    浏览(52)
  • QT自定义优雅的表单控件,简单实现设置界面布局

    FormView.h FormView.cpp 核心函数 函数 变量 功能 addEditableItem title: 输入框前面的提示文字,同时作为该控件的标识符 place_holder: 输入框中的提示文字 在表单中插入一个可填写项 addCheckableItem title: 不显示在UI中,仅作为该控件的标识符 content: 勾选框后面的内容 init_status: 勾选框的初

    2024年02月11日
    浏览(44)
  • 知识图谱实战应用16-知识图谱在化学物质结构上的应用,快速查找化学分子式与结构

    大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用16-知识图谱在化学物质结构上的应用,快速查找化学分子式与结构。在化学领域,知识图谱可以应用于化学物质结构上。化学物质结构主要指分子结构和化学键的组成情况。知识图谱可以将化学物质结构的相关数据

    2024年02月09日
    浏览(43)
  • Qt 不规则窗口,不规则按钮,不规划控件 不规则界面

    类似: Qt 实现 不规则样式设置,不是视觉欺骗,是真正的不规则 ,点击外面不会触发按钮的点击信号. 效果: 显示成一张图片中的图形,使用带有透明区域的png图片; 这里注意:  必须重新绘制,构造函数也一定要调用resize。 见视频,可见,点击到空白处,消失;可见实

    2024年02月09日
    浏览(52)
  • 【Visual Studio】Qt 在其他 cpp 文件中调用操作 ui 界面控件

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 还整了一个如何相互之间调用函数的文章,感兴趣可以看:【Visual Studio】Qt 在其他 cpp 文件中调用主工程下文件中的函数。 主界面工程为 A ,添加的文件名字为 test ,目标是在

    2024年02月05日
    浏览(48)
  • QT界面调用ui,定义主MainWindow中的子控件的槽函数

    在QT的应用中,不可避免需要使用QtDesigner,创建的ui如何调用呢,这里给出我的调用方法。  所有设计做完后,保存ui文件,终端输入: 得到ui.h文件,新建mainwindow.h文件,输入: 新建mainwindow.cpp文件,输入: 新建main.cpp文件,输入: 编译即可,编译需要编写pro文件。 除此之外,

    2024年02月12日
    浏览(40)
  • 【五一创作】VS+Qt主界面内嵌自定义控件的四种方法以及不同自定义控件数据交互

    在Qt界面开发过程中,一个主界面或者主窗口看成是各个控件排列组合后的集合,对于一些项目而言,有些常用的控件可以封装成自己想要的控件样式并且复用,比如说,log显示控件,图像/视频显示控件等,可以将常用的控件代码封装起来,以便下次复用,内嵌在不同的主界

    2024年02月11日
    浏览(61)
  • 界面控件DevExpress ASP.NET Scheduler - 助力快速交付个人信息管理系统(上)

    DevExpress ASP. NET Scheduler组件能完全复制Microsoft Outlook Scheduler的样式和功能,具有日、周、月和时间轴视图,并包括内置的打印支持,因此用户可以在尽可能短的时间内交付全功能的个人信息管理系统。 P.S :DevExpress ASP.NET Web Forms Controls拥有针对Web表单(包括报表)的110+种UI控

    2024年03月11日
    浏览(44)
  • 界面控件DevExpress ASP.NET Data Grid组件 - 可快速处理各类型数据!(一)

    由DevExpress开发的快速且功能完整的ASP.NET Web Forms的Data Grid组件,从全面的数据塑造和数据过滤选项到十多个集成数据编辑器,该套件提供了帮助用户构建极佳数据所需的一些,没有限制! P.S :DevExpress ASP.NET Web Forms Controls拥有针对Web表单(包括报表)的110+种UI控件,可利用轻

    2024年01月23日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包