`

QT findChild() 及动态初始化窗体布局(原创)

    博客分类:
  • C++
 
阅读更多
   在Qt中,凡是在一个类中new的对象只要在当前类的对象的生命周期内未被delete,都可以通过findChild()函数找到这个new出的对象,查找时,需传递一个QString的参数。
   动态布局窗体,需要动静结合,窗体的外布局通过designer画出,然后需要实现动态挂子窗体的区域用代码写new 滚动区域及滚动区中的布局。
项目中的例子如下:
class wizardTestEdit
{
public:
       void initview();
public slots:
       void  slotTreeCliked( QTreeWidgetItem * item )

}
void  wizardtestEdit::initview()
{

   //动态初始化窗体布局

         QScrollArea* pScrollArea = new QScrollArea(layoutWidget);
pScrollArea->setBackgroundRole(QPalette::Background);
pScrollArea->setWidgetResizable(true);
vboxLayout2->addWidget(pScrollArea);//动态加滚动条域

         QWidget *pContainer = new QWidget;
pContainer->setBackgroundRole(QPalette::BrightText);

         QVBoxLayout *pVLayout = new QVBoxLayout;
pContainer->setLayout(pVLayout);
pScrollArea->setWidget(pContainer);//在滚动条域中加窗体

   //为new出的对象加一个索引名方便在this对象中通过findChild函数随时调用这  个 new出的对象。
   pScrollArea->setObjectName(QString::fromUtf8("pScrollArea"));
 
//调整分裂器的大小
QList<qint32> size;
size << 150 << 450;
splitter->setSizes(size);

//调整分裂器的大小
QList<qint32> size1;
size1 << 600 << 200;
splitter_2->setSizes(size1);
setWindowFlags(Qt::Window |    Qt::WindowMaximizeButtonHint /*| Qt::WindowMinimizeButtonHint*/);

}
//
void wizardtestEdit::slotTreeCliked( QTreeWidgetItem * item )
{
   QScrollArea* pScrollArea = this->findChild<QScrollArea*>  ("pScrollArea");//凡是在类中new的对象都可以作为当前类的child被找到,通过Qstring查找这个new的对象,在new这个对象同时声明查找的Qstring名
   int t=item->parent()->indexOfChild(item);
   pScrollArea->ensureWidgetVisible(this->pDlgList.at(t));
}


分享到:
评论
1 楼 jinlingren1122 2014-08-15  
不错,可以学习一下

相关推荐

    Qt自定义/最大化/最小化/关闭 完整例程-按钮跟随界面大小移动

    在本文中,我们将深入探讨如何使用Qt库来创建一个具有自定义、最大化、最小化和关闭功能的窗口,并且按钮会随着窗口大小的改变而自动调整位置。这是一项常见的任务,对于开发桌面应用程序来说非常重要。Qt是一个跨...

    QT编程实现多国语系的动态切换

    QT编程实现多国语系的动态切换是一项在软件开发中常用的技术,特别是在国际化的应用程序中。QT是一个跨平台的应用程序开发框架,它提供了丰富的库和工具来帮助开发者创建图形用户界面(GUI)应用。在QT中,实现多...

    Qt嵌入ui界面Demo

    之后,可以在源代码中使用`QApplication`和`QWidget`类来初始化和管理应用程序。 Qt的UI加载通常涉及以下步骤: 1. 包含自动生成的UI头文件,如`#include "mainwindow.h"` 2. 创建`QMainWindow`对象实例,例如`...

    qt界面跳转切换

    2. **连接信号和槽**:在主窗口的构造函数或初始化代码中,我们将按钮的信号连接到相应的槽函数。 ```cpp // 主窗口源文件 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { // 创建按钮并布局 ...

    QtChart绘制折线图

    在Qt框架中,QtChart模块提供了丰富的图表组件,使得开发者能够轻松地在应用程序中创建和展示数据可视化效果。本文将详细讲解如何使用QtChart来绘制折线图,这对于数据分析、监控或者任何需要图形化表示数据的场景都...

    Qt实现2个计数器页面,通过菜单切换

    在本文中,我们将深入探讨如何使用Qt框架来创建一个具有两个计数器页面的应用程序,并通过菜单栏进行页面切换。Qt是一个跨平台的C++图形用户界面库,它提供了丰富的功能,可以方便地构建桌面、移动甚至嵌入式系统的...

    qt中英文切换

    这通常在主窗口或全局设置类的初始化方法中完成。 ```cpp QTranslator translator; if (QApplication::translate("appName", "Chinese") == "Chinese") { // 检查系统语言是否为中文 translator.load("zh_CN.qm");...

    Qt控件提升.7zQt控件提升.7zQt控件提升.7z

    Qt提供了布局管理器,如`QVBoxLayout`、`QHBoxLayout`和`QGridLayout`,以及`QStackedWidget`等,帮助动态调整控件的大小和位置。 4. 动画效果:Qt的`QPropertyAnimation`和`QParallelAnimationGroup`类可以为控件...

    QT状态栏修改

    QT状态栏修改是一个在开发基于QT框架的GUI应用程序时常见的需求。QT是一个强大的跨平台应用程序开发框架,广泛用于创建桌面、移动以及嵌入式设备的应用。状态栏通常位于窗口底部,用于显示一些辅助信息,如程序状态...

    QT4下面如何使用designer生成源码

    Designer是QT4中的一个重要组件,它是一个所见即所得的GUI设计器,允许开发者无需编写代码就能创建和布局UI元素。这篇教程将深入探讨如何在QT4中使用Designer生成源码,并将这些源码集成到自己的程序中。 1. **QT4 ...

    Qt弹出式按键菜单

    - **国际化**: 如果应用需要支持多语言,使用Qt的翻译机制(如`.qm`文件)处理菜单文本。 - **响应式设计**: 考虑不同屏幕尺寸和设备类型,可能需要调整菜单的布局和显示方式。 通过以上步骤,我们可以创建一个具有...

    QT实现在滑动条的滑块上显示数值

    QT库是Qt开发框架的一部分,它是一个用于创建跨平台应用程序的C++库。在这个特定的场景中,我们关注的是QSlider组件,它是QT提供的一种用户界面元素,允许用户通过滑动来选择一个介于最小值和最大值之间的值。本文将...

    Qt的无边框窗口 支持放大、缩小、拖拽 代码简单

    在Qt编程中,创建无边框窗口是一种常见的需求,它可以让用户界面更加简洁,同时实现自定义的窗口操作,如拖拽、放大和缩小。Qt的无边框窗口功能主要通过`Qt::WindowFlags`来实现,特别是通过设置`Qt::...

    在CMake Qt Qml环境中,用c++加载和访问Qml里面的控件

    在CMake、Qt和Qml的环境中,将C++与Qml进行集成是常见的开发实践,这使得可以利用Qml的声明式UI设计和C++的高性能后端处理能力。本话题将深入探讨如何在CMake项目中使用Qt库加载和访问Qml中的控件,同时介绍两种成功...

    qt中的c++, 学习界面

    Qt提供了一个名为Qt Designer的可视化工具,允许开发者拖放控件来设计界面布局。设计完成后,可以生成一个.ui文件,这是一个XML格式的文件,包含了所有控件的信息。通过Qt的uic工具,这个.ui文件可以被编译为C++...

    使用qt配置opencv图像库

    在IT行业中,Qt和OpenCV是两个非常重要的库,它们分别在图形用户界面(GUI)开发和计算机视觉领域有着广泛的应用。本篇文章将详细介绍如何在Qt项目中配置和使用OpenCV图像库,以便在Qt界面中展示图像。 首先,Qt是...

    Qt不规则按钮实现 ui实现

    在Qt框架下,不规则按钮的实现主要涉及到自定义控件和图形绘制技术。Qt是一个功能强大的跨平台应用程序开发框架,特别适合于GUI(图形用户界面)应用的开发。QPushB是Qt中的QPushButton,它是标准的按钮组件,通常...

    QT设计一个类似VSCode的标题栏

    在QT中,我们可以使用QApplication类来初始化应用,QMainWindow类来创建主窗口,并通过setWindowFlags()函数设置窗口的各种属性,如最小化、最大化和关闭按钮。 为了实现类似VSCode的标题栏,我们需要自定义一个...

    Qt使用QCamera调用摄像头

    在`mainwindow.cpp`中,初始化`QCamera`对象和`QLabel`,并设置它们的相关属性。`QCamera`的实例化通常包括选择摄像头设备、设置预览窗口和启动摄像头服务: ```cpp MainWindow::MainWindow(QWidget *parent) : ...

    OpenCV配置(Qt环境)

    在IT行业中,OpenCV(开源计算机视觉库)和Qt(跨平台的应用程序开发框架)是两个重要的工具。本文将详细讲解如何在Qt环境中配置OpenCV,以便开发图像处理或计算机视觉相关的应用程序。我们将重点关注Pro文件的配置...

Global site tag (gtag.js) - Google Analytics