Qt使用QStackedWidget实现堆栈窗口
堆栈窗口可以根据选择项的不同显示不同的窗体
- // stackeddlg.h
- #ifndef STACKEDDLG_H
- #define STACKEDDLG_H
- #include <QDialog>
- #include <QLabel>
- #include <QListWidget>
- #include <QStackedWidget>
- class StackedDlg : public QDialog
- {
- Q_OBJECT
- public:
- explicit StackedDlg(QWidget *parent = 0);
- signals:
- public slots:
- private:
- QLabel *textLabel;
- QLabel *showLabel;
- QLabel *aboutLabel;
- QListWidget *list;
- QStackedWidget *stack;
- };
- #endif // STACKEDDLG_H
- //stackeddlg.cpp
- #include "stackeddlg.h"
- #include <QHBoxLayout>
- StackedDlg::StackedDlg(QWidget *parent) :
- QDialog(parent)
- {
- //创建一个QListWidget控件 并向其中添加列表项
- list = new QListWidget();
- list->insertItem(0, tr("文本窗口"));
- list->insertItem(1, tr("显示窗口"));
- list->insertItem(2, tr("关于窗口"));
- textLabel = new QLabel(tr("学习使用堆栈窗口"));
- showLabel = new QLabel(tr("仅仅是一个示例程序"));
- aboutLabel = new QLabel(tr("欢迎交流,共同学习"));
- //创建QStackedwidget控件
- stack = new QStackedWidget();
- //将控件添加到堆栈窗口中
- stack->addWidget(textLabel);
- stack->addWidget(showLabel);
- stack->addWidget(aboutLabel);
- //使用一个水平布局管理器对对话框进行布局
- QHBoxLayout *mainLayout = new QHBoxLayout(this);
- mainLayout->addWidget(list);
- mainLayout->addWidget(stack, 0, Qt::AlignHCenter);
- //设置mainLayout的边框与对话框边缘的距离
- mainLayout->setMargin(5);
- mainLayout->setSpacing(5);
- //信号与槽的连接,实现按选择显示窗体
- //此处堆栈窗口的index按插入的顺序从0依次排序,与QListWidget的条目排序一致
- connect(list, SIGNAL(currentRowChanged(int)), stack, SLOT(setCurrentIndex(int)));
- this->setWindowTitle(tr("堆栈窗口"));
- }
- //main.cpp
- #include <QApplication>
- #include <QTextCodec>
- #include "stackeddlg.h"
- int main(int argc, char *argv[])
- {
- QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
- QApplication app(argc, argv);
- StackedDlg dlg;
- dlg.show();
- return app.exec();
- }
Qt使用QStackedWidget实现堆栈窗口的更多相关文章
- Qt5布局管理(三)——QStackedWidget堆栈窗口类
转载:LeeHDsniper 实例效果如下图: 如上图,堆栈窗口左半部分是一个QListWidget对象,右半部分是分别是三个标签.通过点击左边不同的项目,可以使得右边的Lable进行切换. 具体的结 ...
- qt如何实现一个渐隐窗口呢(开启的时候他是从上往下渐渐显示)
qt如何实现一个渐隐窗口呢?就是比如说开启的时候他是从上往下渐渐显示的,关闭的时候从下往上渐渐小时的http://stackoverflow.com/questions/19087822/how-to ...
- vs2010 调试 调用堆栈 窗口
msdn 如何使用call stack窗口: http://msdn.microsoft.com/zh-cn/library/a3694ts5(v=vs.90).aspx 使用“调用堆栈”窗口可以查看 ...
- Qt实现基本QMainWindow主窗口程序
这个实验用Qt实现基本QMainWindow主窗口 先上实验效果图 打开一个文件,读取文件类容 详细步骤: 1.打开Qt creator新建MainWindow工程 右键工程名添加新文件,mai ...
- QT添加程序图标及窗口图标
程序图标 材料准备 图标文件:*.ico文件,存放在源文件同一目录下,如"myapp.ico" 写入图标 向*.pro文件中,独立一行写入"RC_ICONS = *.ic ...
- QT笔记之实现阴影窗口
方法一: 代码实现 在窗口构造函数中加入:setAttribute(Qt::WA_TranslucentBackground),保证不被绘制上的部分透明 重写void paintEvent(QPain ...
- Qt入门(7)——窗口几何结构
QWidget提供了几个处理窗口几何结构的函数.这些函数中的几个操作纯客户区域(例如不包含窗口框架的窗口),其它一些包括窗口框架.它们之间的区别在某种意义上被完成覆盖明显地最普通的方法.包括窗口的框架 ...
- Qt编程之实现属性窗口编辑器
类似于这种: 就是右下角这个框,有属性名字和对应的value编辑. 这个Widget是作为一个QDockWidget被添加到QMainWindow中的.QMainWindow必须要有centralWi ...
- 2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口
1 新建一个空项目 A 编写 .pro文件 QT += gui widgets HEADERS += \ MyDialog.h SOURCES += \ MyDialog.cpp B 编写MyD ...
随机推荐
- SQLServer、MySQL、Oracle语法差异小集锦
一.差异集锦 在建表的时候,只有自增的语法不同. 下面给出3种数据库通用的建表与初始化测试语句: CREATE TABLE Country( Id int PRIMARY KEY, Name ) ); ...
- ENVI 5.0 Beta 体验——影像数据的显示
ENVI 5.0 Beta采用了全新的软件界面,数据的显示和操作跟以往的三视窗方式有很大的区别,下面一块体验一下. 对于栅格数据的显示方面,5.0有了非常大的改进,采用的全新的金字塔计算方法,在第一次 ...
- markdown语法学习源码
__注: 结合markdown官方文档 其中大部分例子和说明文字都摘自官方文档__官方链接:[Markdown: Basics (快速入门)](http://wowubuntu.com/markdow ...
- Windows phone 8 学习笔记(3) 通信(转)
Windows phone 8 可利用的数据通信方式比较广泛,在硬件支持的前提下,我们可以利用WiFi.蓝牙.临近感应等多种方式.数据交互一般通过套接字来完成,我们将在本文详细的分析. 快速导航:一. ...
- WP8_定位新页面中listbox的某项
即将跳转到页面A,在页面A中有一个listbox,在跳转的时候,接收参数,自动选中listbox中的某项 /// <summary> /// 接收参数,定位当前选中项 /// </s ...
- spring+hibernate--直接修改数据库,再通过hibernate查询数据不变
这个问题已经很多天了,一直没有时间解决,不过还好是自己的项目,没什么影响. 刚好今天没事,想好好解决一下这个问题. hibernate主要配置如下: <property name="h ...
- git贡献代码流程
1.本地创建ssh key: $ ssh-keygen -t rsa -C "your_email@youremail.com" 2.回到github,进入Account Sett ...
- (笔记)angular 的根据后台StateCode本地显示指定文案
- 基于s5pv210嵌入式系统busybox文件系统移植
基于s5pv210嵌入式系统busybox文件系统移植 1.下载源码 busybox.net/downloads下载最新版的busybox源码,最新源码为1.21.1 2.解压源码文件 tar xvf ...
- DPDK内存管理-----(二)rte_mempool内存管理
DPDK以两种方式对外提供内存管理方法,一个是rte_mempool,主要用于网卡数据包的收发:一个是rte_malloc,主要为应用程序提供内存使用接口.本文讨论rte_mempool.rte_me ...