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目录下反复的查找,然后分析函数之间的调用关系,效率实在是太低了,最近总结出一个更简便的方法, ...
随机推荐
- macos 命令行安装 ipa
macos 命令行安装 ipa 苹果发神经后itunes已经无法在安装app了,如果有知道的兄弟可以告诉我啊 ideviceinstaller 使用这个开源项目可以在macos下安装app brew ...
- apache atlas源码编译打包 centos
参考:https://atlas.apache.org/InstallationSteps.html https://blog.csdn.net/lingbo229/article/details/8 ...
- Database Change Notification
使用java监控oracle数据库的变化,主要是针对表数据,如果发生变化,使用select去查询,能够达到推送的目的 package com.test.notifi; import java.sql. ...
- selenium爬取煎蛋网
selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...
- Vue+localstrong登录注册,并保持登录状态
在router.js中添加meta区分 比如登录注册页面,不需要登录即可进入,那么我们把meta中的isLogin标志设置为false { //登录 path: '/login', component ...
- 【java】-- 多线程之间实现通讯
1.多线程之间如何实现通讯 1.1.什么是多线程之间通讯? 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同. 画图演示 1.2.多线程之间通讯需求 需求:第一个线程写入(inpu ...
- c#发送短息验证码
<add key="WebReference.Service.PostUrl" value="http://106.ihuyi.cn/webservice/sms1 ...
- python函数用法
一.定义函数 形参:函数完成一项工作所需要的信息,在函数定义时完成 实参:调用函数时传递给函数的信息 二.传递实参 1.位置实参:每个实参都关联到函数定义中的一个形参 示例: def describe ...
- 配置Https 和 HSTS
1. 视频 https://www.bilibili.com/video/av33344382/?p=2 using System; using Microsoft.AspNetCore.Builde ...
- textarea--去掉空格的办法
我在初次用到textarea多行文本框时,遇到的问题是:默认出现了两行空格,如图: 代码是(错误的写法): 最后才发现,原来是: textarea标签是需要写在同一行,不能换行,正确的写法: