详解C++ Qt中堆叠窗体的使用案例

 更新时间:2023年08月23日 16:06:51   作者:执念斩长河  
这篇文章主要为大家详细介绍了C++ Qt中堆叠窗体的使用案例,文中的示例代码讲解详细,对我们学习QT有一定的帮助,感兴趣的小伙伴可以了解一下

本博文源于笔者最近学习的Qt,内容讲解堆叠窗体QStackedWidget案例,效果是选择左侧列表框中不同的选项时,右侧显示所选的不同的窗体。

案例效果

案例书写过程

控件都是动态创建的,因此.h文件需要创建控件,.cpp书写业务代码

#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include<QListWidget>
#include<QStackedWidget>
#include<QLabel>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
    Q_OBJECT
public:
    explicit Dialog(QWidget *parent = nullptr);
    ~Dialog();
private:
    Ui::Dialog *ui;
    QListWidget *list;
    QStackedWidget *stack;
    QLabel* label1;
    QLabel* label2;
    QLabel* label3;
};
#endif // DIALOG_H

.cpp文件,要分为两个部分

#include "dialog.h"
#include "ui_dialog.h"
#include<QHBoxLayout>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
//    ui->setupUi(this);
    setWindowTitle(tr("StackedWidget"));
    list = new QListWidget(this);
    list->insertItem(0,tr("Window1"));
    list->insertItem(1,tr("Window2"));
    list->insertItem(2,tr("Window3"));
    label1 = new QLabel(tr("WindowTest1"));
    label2 = new QLabel(tr("WindowTest2"));
    label3 = new QLabel(tr("WindowTest3"));
    stack = new QStackedWidget(this);
    //
    stack->addWidget(label1);
    stack->addWidget(label2);
    stack->addWidget(label3);
    QHBoxLayout* mainLayout = new QHBoxLayout(this);
    mainLayout->setMargin(5);
    mainLayout->setSpacing(5);
    mainLayout->addWidget(list);
    mainLayout->addWidget(stack,0,Qt::AlignHCenter);
    mainLayout->setStretchFactor(list,1);
    mainLayout->setStretchFactor(stack,3);
    connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(setCurrentIndex(int)));
}
Dialog::~Dialog()
{
    delete ui;
}

到此这篇关于详解C++ Qt中堆叠窗体的使用案例的文章就介绍到这了,更多相关Qt堆叠窗体内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言菜鸟基础教程之for循环

    C语言菜鸟基础教程之for循环

    c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.
    2017-10-10
  • C语言杨氏矩阵简单实现方法

    C语言杨氏矩阵简单实现方法

    杨氏矩阵是一个数字矩阵,矩阵的每一行从左到右一次递增,矩阵从上到下递增,在这样的矩阵中查找一个数字是否存在。时间复杂度小于O(N),有需要的朋友可以借鉴参考下
    2023-02-02
  • 关于C++为什么不加入垃圾回收机制解析

    关于C++为什么不加入垃圾回收机制解析

    C++为什么不加入垃圾回收机制呢?现在肯定还有很多人不太了解,不过没关系,下面小编就为大家详细的介绍下究竟C++为什么不加入垃圾回收机制。一起跟随小编过来看看吧
    2017-01-01
  • C++ Vector 动态数组的实现

    C++ Vector 动态数组的实现

    这篇文章主要介绍了C++ Vector 动态数组的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 基于opencv实现视频中的颜色识别功能

    基于opencv实现视频中的颜色识别功能

    这篇文章主要介绍了基于opencv实现视频中的颜色识别功能,文章详细介绍了颜色识别的原理及opencv中的颜色模型,基于c++代码实现颜色识别功能,需要的朋友可以参考下
    2022-07-07
  • php正则表达式的基本语法总结

    php正则表达式的基本语法总结

    以下是对php正则表达式的基本语法进行了详细的总结介绍,需要的朋友可以过来参考下
    2013-10-10
  • C语言自制测色弱找方块游戏的示例代码

    C语言自制测色弱找方块游戏的示例代码

    这篇文章主要介绍了基于C语言自制测色弱找方块的游戏。该游戏是仿照最近网上流行的找方块游戏编写的,可玩性还是挺高的,感兴趣的可以了解一下
    2022-12-12
  • C++学习贝叶斯分类器实现手写数字识别示例解析

    C++学习贝叶斯分类器实现手写数字识别示例解析

    这篇文章主要介绍了在C++学习中如何采用贝叶斯分类器来实现手写数字识别的示例及解析有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • C++指向类成员函数的指针详细解析

    C++指向类成员函数的指针详细解析

    由于这几天在开发中要用到函数指针,所以就整理了一下关于函数指针的概念
    2013-08-08
  • VS2010+Opencv+MFC读取图像和视频显示在Picture控件

    VS2010+Opencv+MFC读取图像和视频显示在Picture控件

    这篇文章主要为大家详细介绍了VS2010+Opencv+MFC读取图像和视频显示在Picture控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08

最新评论