文章目录

  • 1 Qt中的QStackedLayout

1 Qt中的QStackedLayout

栈式布局管理器(QStackedLayout):

  • 所有组件在垂直于屏幕的方向上被管理。
  • 每次只有一个组件会显示在屏幕上。
  • 只有最顶层的组件会被最终显示。


栈式布局管理器的特点:

  • 组件大小一致且充满父组件的显示区。
  • 不能直接嵌套其它布局管理器。
  • 能够自由切换需要显示的组件。
  • 每次能且仅能显示一个组件。

QStackedLayout的用法概要:

如下为QStackedLayout结合QTimer示例程序:
Widget.h:

#ifndef _WIDGET_H_
#define _WIDGET_H_#include <QtGui/QWidget>
#include <QPushButton>class Widget : public QWidget
{Q_OBJECT
private:QPushButton TestBtn1;QPushButton TestBtn2;QPushButton TestBtn3;QPushButton TestBtn4;void initControl();
private slots:void timerTimeout();
public:Widget(QWidget *parent = 0);~Widget();
};#endif

Widget.cpp:

#include "Widget.h"
#include <QStackedLayout>
#include <QHBoxLayout>
#include <QtCore>
#include <QDebug>Widget::Widget(QWidget *parent) : QWidget(parent),TestBtn1(this), TestBtn2(this), TestBtn3(this), TestBtn4(this)
{initControl();
}void Widget::initControl()
{QStackedLayout* sLayout = new QStackedLayout();QHBoxLayout* hLayout = new QHBoxLayout();QWidget* widget = new QWidget();QTimer* timer = new QTimer(this);TestBtn1.setText("1st Button");TestBtn2.setText("2rd Button");TestBtn3.setText("3th Button");TestBtn4.setText("Test Button 4: D.T.Software");TestBtn2.setParent(widget);TestBtn3.setParent(widget);hLayout->addWidget(&TestBtn2);hLayout->addWidget(&TestBtn3);widget->setLayout(hLayout);sLayout->addWidget(&TestBtn1); // 0sLayout->addWidget(widget); // 1sLayout->addWidget(&TestBtn4); // 2sLayout->setCurrentIndex(0);setLayout(sLayout);connect(timer, SIGNAL(timeout()), this, SLOT(timerTimeout()));timer->start(2000);
}void Widget::timerTimeout()
{QStackedLayout* sLayout = dynamic_cast<QStackedLayout*>(layout());if( sLayout != NULL ){int index = (sLayout->currentIndex() + 1) % sLayout->count();sLayout->setCurrentIndex(index);}
}Widget::~Widget()
{}

main.cpp:

#include <QtGui/QApplication>
#include "Widget.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

参考资料:

  1. QT实验分析教程

Qt中的QStackedLayout相关推荐

  1. QT 中QTimer 和 startTimer()的区别

    最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...

  2. QT 中使用 OpenCv 的 CascadeClassifier 报错

    问题 在 QT 中调用 OpenCv 的 CascadeClassifier 进行人脸框检测的时候,在构造函数中进行检测器的初始化,随后调用相机读取图片的时候就会报错,报的错误是 Segment Fa ...

  3. 【Qt】Qt中使用ssl时报错:qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method

    一.问题 在Qt中使用https,运行时报错: qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method 二.原因分析 SSLv2由 ...

  4. Qt中两种定时器用法

    在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器:一种是使用QTimer类.定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度. 1.QObject类的定时器 QObj ...

  5. Qt中的 Size Hints 和 Size Policies

    sizeHint 这个属性所保存的 QSize 类型的值是一个被推荐给窗口或其它组件(为了方便下面统称为widget)的尺寸,也就是说一个 widget 该有多大,它的一个参考来源就是这个 sizeH ...

  6. Qt中使用多线程的一些心得(一)——继承QThread的多线程使用方法

    一 前言 二Qt多线程方法一 继承QThread 2.1使用多线程的原因分析 2.2 写一个继承于QThread的线程 三 总结 一 前言   本篇文章部分内容参考了该博文:传送门.   Qt中有两种 ...

  7. C++中的stack类、QT中的QStack类

    C++中的stack 实现一种先进后出的数据结构,是一个模板类. 头文件 #include<stack> 用法(以int型为例): stack <int> s; //定义一个i ...

  8. Qt中不规则窗体和部件的实现

    Qt中不规则窗体和部件的实现 描述:a.png 窗口背景图 图片: 描述:mask.png 窗口掩码图 图片: 描述:toolbutton.png 按钮背景图 图片: 描述:toolbutton_ma ...

  9. QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置

    QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 参考文章: (1)QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 (2)https:// ...

最新文章

  1. WinCE5.0中应用程序如何直接写屏
  2. 神经网络设计神经网络
  3. RxJava zip 使用
  4. Windows系统下如何在cmd命令窗口中切换Python2.7和Python3.6
  5. Oracle-使用切片删除的方式清理非分区表中的超巨数据
  6. ThinkPHP分页链接支持数组参数的办法
  7. asp.net razor html,从控制台应用程序中的ASP.NET Razor模板生成HTML的当前最佳解决方案是什么?...
  8. php sdk 调用示例,开放服务-SDK调用示例
  9. linux镜像文件_深度UI + Ubuntu系统,堪称最强最美Linux发行版!你敢升级吗?
  10. windows防火墙出站规则只允许访问指定域名ip,其他出站ip全部阻止的方法
  11. RationalDMIS 2020 编程技巧
  12. Ubuntu16.04 (ROS)下通过CAN分析仪(USBCAN/CANalyst-II)调试无人车助力转向电机(1)
  13. Vue - 每个页面单独设置 body 背景色(独立修改单个页面的背景色,不同页面设置不同的背景颜色)
  14. 云端是一个软件平台,拥有丰富的资源。在云端使用软件,无需安装,一点,下载,直接使用。
  15. 【Linux安全管理】Firewalld详解
  16. 经典的搞笑图片集,让你轻松一下
  17. mysql利用存储过程批量插入一千万数据(半小时)
  18. 上海计算机一级优秀率,数据 | 上海初中哪家强?2020四校八大预录数据告诉你!...
  19. Oracle-存储过程、存储函数、触发器
  20. 写爆款文案需要把握的四个维度

热门文章

  1. 【Matlab 控制】矩阵、图像操作基础
  2. STM32 基础系列教程 46 – RNG
  3. 雅客EXCEL(2)-数据、文本格式
  4. modelsim的工程仿真流程--2
  5. 【PC工具】大神级代码注释,漂亮实用的代码注释工具代码logo工具
  6. 3.初识Verilog HDL
  7. 查询时注意 查询字段传值参数类型,尽量和数据库字段类型一致
  8. 理解 Linux 网络栈(2):非虚拟化Linux 环境中的 Segmentation Offloading 技术
  9. python html parse
  10. mysql cluster 安装NDB二进制版本