1.QT创建堆叠窗口使用类,但是使用它时主窗口不能是MainWindow,否则会出现布局错误,本例中使用基类为QDialog

QStackedWidget

2.可以配合列表框QListWidget和QComboBox使用

3.先看代码stackwindow.h文件:

#define STACKWINDOW_H

#include <QDialog>
#include <QListWidget>//列表框
#include <QStackedWidget>//堆栈窗体
#include <QLabel> class StackWindow : public QDialog
{
Q_OBJECT public:
StackWindow(QWidget *parent = );
~StackWindow(); void initWindow(); private:
QListWidget *_lw;
QStackedWidget *_sw;
QLabel *_lb1;
QLabel *_lb2;
QLabel *_lb3;
}; #endif // STACKWINDOW_H

4.看主文件stackwindow.cpp,代码主要封装在initWindow函数中

#include "stackwindow.h"
#include <QVBoxLayout> StackWindow::StackWindow(QWidget *parent)
: QDialog(parent)
{
initWindow(); } StackWindow::~StackWindow()
{ } void StackWindow::initWindow()
{
setWindowTitle("堆栈窗体"); //初始化控件
_lw = new QListWidget(this); //QListWidget中插入选择项 _lw->insertItem(,"主页");
_lw->insertItem(,"娱乐");
_lw->insertItem(,"八卦"); //初始化标签控件
_lb1 = new QLabel("看新闻",this);
_lb2 = new QLabel("看娱乐",this);
_lb3 = new QLabel("看八卦",this);
//创建堆叠窗体
_sw = new QStackedWidget(this);//父对象为主窗体
//_sw->setStyleSheet("background:red");
//将三个label加入_sw中
_sw->addWidget(_lb1);
_sw->addWidget(_lb2);
_sw->addWidget(_lb3); //对主窗口布局 QHBoxLayout *hl = new QHBoxLayout();
hl->setMargin();//设置边距
hl->setSpacing();//设置控件间距 //布局中加入窗体
hl->addWidget(_lw);
hl->addWidget(_sw,,Qt::AlignHCenter); hl->setStretchFactor(_lw,);//设置控件尺寸占比
hl->setStretchFactor(_sw,);// setLayout(hl); connect(_lw,SIGNAL(currentRowChanged(int)),_sw,SLOT(setCurrentIndex(int))); }

5.main文件比较简单

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

6.看一下运行效果:

Qt创建堆叠窗口的更多相关文章

  1. Qt创建分割窗口

    1.QT中QSplitter类可以用来灵活分割窗口,从而产生可用的布局,在以后进行界面布局很有用. 2.先看代码,这个分割窗口按顺序添加子窗口: #include "mainwindow.h ...

  2. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...

  3. Qt创建停靠悬浮窗口

    1.Qt实现窗口停靠和悬浮使用类QDockWidget,它有两个重要方法用来设置停靠特性以及停靠区域, dw1->setFeatures(QDockWidget::DockWidgetMovab ...

  4. 第15.34节 PyQt(Python+Qt)入门学习:containers容器类部件QStackedWidget堆叠窗口部件详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStackedWi ...

  5. QT+创建两个不相干的窗口实现一个显示一个不显示

    因为两个窗口互不相干,所以需要重新创建一个窗口类subWidget subWidget.cpp文件 #ifndef SUBWIDGET_H #define SUBWIDGET_H #include & ...

  6. PyQt(Python+Qt)学习随笔:containers容器类部件QStackedWidget堆叠窗口属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.堆叠窗口简介 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStack ...

  7. Qt创建窗体的过程

    版权声明 本文为原创作品,请尊重作者的劳动成果.转载必须保持文章完整性,并以超链接形式注明原始作者“ tingsking18”和 主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口 ...

  8. 堆叠窗口QStackedWidget

    经常将QStackedWidget和QListWidget或者QListView搭配使用 import sys from PyQt5.QtWidgets import QApplication, QW ...

  9. QT源码解析(七)Qt创建窗体的过程,作者“ tingsking18 ”(真正的创建QPushButton是在show()方法中,show()方法又调用了setVisible方法)

    前言:分析Qt的代码也有一段时间了,以前在进行QT源码解析的时候总是使用ue,一个函数名在QTDIR/src目录下反复的查找,然后分析函数之间的调用关系,效率实在是太低了,最近总结出一个更简便的方法, ...

随机推荐

  1. .net基础学java系列(八)SpringBoot

    嘟嘟独立博客 Spring-Boot干货系列 http://tengj.top/categories/Spring-Boot干货系列/ 龙码精神 Java Spring Boot VS .NetCor ...

  2. Java练习2

    1 编写一个应用程序,模拟机动车的加速和减速功能.机动车类Vehicle的UML图如下,其中speedUp()方法实现加速功能,速度上限为240 km/h:speedDown()实现降速功能,下限为0 ...

  3. ansible安装 使用 介绍

    1.介绍安装 a.介绍 Ansible:—基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作. b.安装 ...

  4. ubuntu安装时系统分区设置

    1. 创建主分区:主分区,用于存放系统 20G    主分区    空间起始位置    Ext4日志文件系统    / 2. 创建swap分区:逻辑分区.大小设置为电脑内存大小,2G: 2048MB  ...

  5. vuex脑图

  6. 使用Anaconda虚拟环境编译caffe-gpu pycaffe

    1. 前提: 安装前服务器情况,已经安装好了: CUDNN=7.3.0 CUDA=10.0.130 Opencv 2.4.13 相应命令为: cuda 版本 cat /usr/local/cuda/v ...

  7. 百度地图Web引用

    上海中心二楼 示例 http://api.map.baidu.com/geocoder?address=北京市海淀区上地信息路9号奎科科技大厦&output=html&src=weba ...

  8. jenkins里用ansible发布代码常见的问题

    1.stdout: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined cd bin/vi catalina. ...

  9. Emgucv使用中常用函数总结

    Emgucv常用函数总结: 读取图片 Mat SCr = new Mat(Form1.Path, Emgu.CV.CvEnum.LoadImageType.AnyColor); //根据路径创建指定的 ...

  10. windows部署Apollo

    前言 配置中心伴随着这几年分布式系统演变和微服务架构的兴起,已经成为必不可少的需求之一.试下一下如果哪天公司的所有应用服务,从公司服务器迁移到云服务,成千上万的配置,修改起来是多么耗时费劲的事(我们公 ...