QT-QStackedWidget多窗口应用
前言:
多窗口应用,例如某微信,页面由1,2,3个布局组成。
1-基本流程
页面1控制页面2,通过选择页面1上的按钮或控件
页面2控制页面3,通过选择页面2上的按钮或控件
2-其中页面2中的页面很多是不同的,页面3也同理,那其实就是在同一个区域显示不同页面。
3-那么怎么快捷实现这个功能呢?在qt中我们知道,页面其实就是一个个widget,然后qt有自带的控件来实现这个功能,就是QStackedWidget,这个控件可以保存我们的每一个页面,然后可以选择显示某个页面。
4-我们实现一个例子
1-先看效果图:这里实现页面选择用的下拉框,看起来比较low,做成微信列表那样原理也是一样的,为了方便简单实现,方便理解,所以使用的下拉框。
基本思路:
1-首先布局主窗口,需要一个选择窗口,里面放一个选择框,一个显示窗口放一个QStackedWidget
2-新建3个带ui的widget文件,每个ui做好页面
3-main函数初始化
1-定义3个页面的对象,放入QList中
2-把3个页面添加到QStackedWidget控件中
3-下拉框添加选择事件,通过下拉框索引获取QList,或者直接用索引,修改QStackedWidget当前页面
1-首先布局主窗口
2-新建三个带ui的widget
带ui是为了方便后续设计页面内容,如果用代码生成,会比较累。
3个独立的页面自己设计一下。
3-材料都准备好了,mainwindow添加代码,很简单就几句。
头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include "form1.h"
#include "form2.h"
#include "form3.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_comboBox_currentIndexChanged(int index);private:Ui::MainWindow *ui;QList<QWidget*> win_lits;
};
#endif // MAINWINDOW_H
源文件
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);Form1 *fwin1= new Form1();Form2 *fwin2= new Form2();Form3 *fwin3= new Form3();win_lits.append((QWidget*)fwin1);win_lits.append((QWidget*)fwin2);win_lits.append((QWidget*)fwin3);ui->stackedWidget->addWidget(fwin1);ui->stackedWidget->addWidget(fwin2);ui->stackedWidget->addWidget(fwin3);ui->stackedWidget->setCurrentWidget(fwin2);ui->comboBox->addItem("fwin1");ui->comboBox->addItem("fwin2");ui->comboBox->addItem("fwin3");
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_comboBox_currentIndexChanged(int index)
{ui->stackedWidget->setCurrentWidget(win_lits[index]);//或者直接用index//ui->stackedWidget->setCurrentIndex(index);
}
QT-QStackedWidget多窗口应用相关推荐
- QT中关于窗口全屏显示与退出全屏的实现
近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示 ...
- 【Qt】MainWindow窗口状态栏
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 显示菜单动作状态 04. 显示临时信息 05. 显示正常信息 06. 显示永久信息 07. 附录 01. 概述 在程序主窗 ...
- Qt图形测绘窗口部件介绍
Qt 图形测绘窗口部件,主要使用第三方窗口部件: 1.Qwt:http://qwt.sourceforge.net 开源免费 2.GraphPak: http://www.ics.com 收费 3. ...
- Qt 之 设置窗口边框的圆角
Qt技术学习班开始了,更多精彩.好玩的内容等着你,赶紧报名吧! 群号:655815739 Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述 ...
- qt 全屏窗口有边框_如何在全屏无边框窗口模式下玩任何Windows游戏
qt 全屏窗口有边框 If you're a regular PC gamer, you know that playing a game in full screen mode can someti ...
- Qt 之 自定义窗口标题栏 之 窗口拉伸
一.简述 之前写了一篇 Qt 之 自定义窗口标题栏 ,用重写了窗口的标题栏,今天为此篇的续篇,对自定义窗口再进行拓展,因为进行了自定义窗口标题栏,去掉了窗口原有的边框,所以鼠标放置窗口边框对窗口进行拉 ...
- Qt中设置窗口边框的圆形
Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口. 下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this ...
- qt 设置ui窗口为固定大小_Qt 设置窗口居中显示和窗体大小
设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include //....... QDesktopWidget* desktop = QApplicatio ...
- qt中关闭窗口资源释放问题
针对QDialog对象,如果是栈上分配的,就不存在资源泄漏问题,但是当对象是new出来的,并且以局部对像存在,当关闭时,窗口只是隐藏,资源是没有释放的,每次exec后者需要delete来释放,另外一种 ...
- qt中设置窗口左上角的图标
前面一节已经详细的讲解了怎么添加图片到qt的图片资源文件中,这里就不赘述了,不太了解的可以看看博主的这篇随笔:qt中建立图片资源管理文件 this->setWindowIcon(QIcon(&q ...
最新文章
- 单片机上电复位电路图大全
- BZOJ1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏
- 33行代码AC——例题6-5 移动盒子(Boxes in a Line, UVa 12657)——解题报告
- 计算机桌面设计总结及体会,计算机基础学习心得
- php获取控制器返回,thinkphp获取所有控制器的方法
- spring中@Value的使用(读取配置文件信息)
- PyTorch 深度学习:37分钟快速入门——FCN 做语义分割
- c++ 函数参数问题
- c 导出html表格数据格式文件,将html网页导出excel表格数据/如何将html页面中的表格导出到excel表格...
- 针式打印机打印显示传真服务器,针式打印机三联纸怎么设置 点击上面的工具栏上的打印服务...
- 25岁女生,转行学前端合适吗?
- Git 笔记 - 程序员都要掌握的 Git
- 一篇出色的argumentative essay怎么写?
- 大数据学习——spark运营案例
- django QQ认证登录
- Faster RCNN训练FLIR红外线数据集
- win10默认浏览器中找不到谷歌浏览器最快速的解决办法
- Akita与脉冲云的关系
- win7系统64位系统怎么计算机配置,教你Ghost win7系统64位虚拟内存怎么设置最好
- 都是蹭热点,差距咋就这么大呢?| 拍者手记