Qt创建堆叠窗口
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创建堆叠窗口的更多相关文章
- Qt创建分割窗口
1.QT中QSplitter类可以用来灵活分割窗口,从而产生可用的布局,在以后进行界面布局很有用. 2.先看代码,这个分割窗口按顺序添加子窗口: #include "mainwindow.h ...
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...
- Qt创建停靠悬浮窗口
1.Qt实现窗口停靠和悬浮使用类QDockWidget,它有两个重要方法用来设置停靠特性以及停靠区域, dw1->setFeatures(QDockWidget::DockWidgetMovab ...
- 第15.34节 PyQt(Python+Qt)入门学习:containers容器类部件QStackedWidget堆叠窗口部件详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStackedWi ...
- QT+创建两个不相干的窗口实现一个显示一个不显示
因为两个窗口互不相干,所以需要重新创建一个窗口类subWidget subWidget.cpp文件 #ifndef SUBWIDGET_H #define SUBWIDGET_H #include & ...
- PyQt(Python+Qt)学习随笔:containers容器类部件QStackedWidget堆叠窗口属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.堆叠窗口简介 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStack ...
- Qt创建窗体的过程
版权声明 本文为原创作品,请尊重作者的劳动成果.转载必须保持文章完整性,并以超链接形式注明原始作者“ tingsking18”和 主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口 ...
- 堆叠窗口QStackedWidget
经常将QStackedWidget和QListWidget或者QListView搭配使用 import sys from PyQt5.QtWidgets import QApplication, QW ...
- QT源码解析(七)Qt创建窗体的过程,作者“ tingsking18 ”(真正的创建QPushButton是在show()方法中,show()方法又调用了setVisible方法)
前言:分析Qt的代码也有一段时间了,以前在进行QT源码解析的时候总是使用ue,一个函数名在QTDIR/src目录下反复的查找,然后分析函数之间的调用关系,效率实在是太低了,最近总结出一个更简便的方法, ...
随机推荐
- git远程删除分支但本地git branch -a仍能看到解决
git远程删除分支但本地git branch -a仍能看到解决 在gitlab页面删除分支 但是本地能可以看到 $ git branch -a br_dev br_to_delete * master ...
- 在本机eclipse中创建maven项目,查看linux中hadoop下的文件、在本机搭建hadoop环境
注意 第一次建立maven项目时需要在联网情况下,因为他会自动下载一些东西,不然突然终止 需要手动删除断网前建立的文件 在eclipse里新建maven项目步骤 直接新建maven项目出了错 ...
- 关于Selenium3+python3.6自动化测试中iframe切换
本篇内容主要表述以下几个问题: 1.iframe 这个是什么? 2.定位iframe 标签时遇到的几个报错总结. 3.显示等待与隐示等待的原理与优缺点. 4.无name,ID可变情况下的处理方式 5. ...
- SQL ServerAlways Encrypted Data
SQL Server 提供了一个加密表上字段的功能, Encrypt Columns , 比如身份证号码,手机号码,银行账户等等敏感信息.
- 精读《Function VS Class 组件》
1. 引言 为什么要了解 Function 写法的组件呢?因为它正在变得越来越重要. 那么 React 中 Function Component 与 Class Component 有何不同? how ...
- Hibernate: '\xE6\x9D\x8E\xE5\x9B\x9B' for column 'cust_name' at row 1 解决
新建Hibernate,出现异常 20:11:03,117 WARN SqlExceptionHelper:137 - SQL Error: 1366, SQLState: HY000 20:11:0 ...
- v-charts修改点击图例事件,legendselectchanged
html: <!--折线图--><ve-line :extend="item.chartExtend" :data-zoom="dataZoom&quo ...
- ./graldew bash: ./gradlew: No such file or directory
使用gradlew的项目,可以使用./gradlew assembelDebug 使用本地gradle编译的项目,并且配置了环境变量,可以使用gradle assembleDebug直接编译包
- 【转】Socket接收字节缓冲区
原创本拉灯 2014年04月16日 10:06:55 标签: socket / 数据包 4448 我们接收Socket字节流数据一般都会定义一个数据包协议( 协议号,长度,内容),由于Socket接收 ...
- 渗透之Empire
文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用! Empire是一个纯碎的PowerShell后期漏洞利用代理工具,它建立在密码学.安全通信和灵活的架构之上.Empire实 ...