当前位置: 首页 > wzjs >正文

html制作企业宣传网站重庆景观设计公司有哪些

html制作企业宣传网站,重庆景观设计公司有哪些,东莞常平邮编是多少,空间网址一、QStackedWidget概述 在 Qt 中,堆栈窗口通常指的是 QStackedWidget 控件,它是用于管理多个子窗口或页面的堆叠式容器。QStackedWidget 允许你在一个固定区域内显示多个子窗口,但同时只显示其中一个子窗口,其他子窗口则被堆叠在…

一、QStackedWidget概述

在 Qt 中,堆栈窗口通常指的是 QStackedWidget 控件,它是用于管理多个子窗口或页面的堆叠式容器。QStackedWidget 允许你在一个固定区域内显示多个子窗口,但同时只显示其中一个子窗口,其他子窗口则被堆叠在后面。这使得你可以创建多页的界面,如向导、选项卡或其他多视图应用程序。

以下是有关 QStackedWidget 的详细介绍和使用方法:

  1. 多页容器:QStackedWidget 是一个多页容器,允许你将多个子窗口放在一个固定区域内。
  2. 单页显示:在任何给定时间,只有一个子窗口是可见的,其他子窗口被隐藏,可以通过切换来显示不同的子窗口。
  3. 切换效果:你可以通过切换页面的方式,如设置当前页或使用动画效果,切换可见的子窗口。

二、常用函数

关键方法及信号

方法/信号说明
addWidget(QWidget *widget)添加新页面,返回索引。
insertWidget(int index, QWidget *)在指定位置插入页面。
removeWidget(QWidget *widget)移除页面(不删除对象,需手动释放内存)。
currentIndex() / currentWidget()获取当前显示的页面索引或指针。
setCurrentIndex(int index)通过索引切换页面。
setCurrentWidget(QWidget *widget)通过指针切换页面。
currentChanged(int index)信号‌:页面切换时触发,可监听此信号处理逻辑(如页面初始化)。

在子窗口切换时触发的信号

QObject::connect(stackedWidget, &QStackedWidget::currentChanged, [&](int index) {qDebug() << "当前子窗口索引已更改:" << index;
});

 三、基本使用步骤

1. ‌在 Qt Designer 中添加 QStackedWidget
  • 拖拽 QStackedWidget 到主窗口。
  • 右键点击 QStackedWidget,选择 ‌Insert Page‌ 添加多个页面,每个页面可单独设计布局。或者单独设计每个页面,通过addWidget方法添加。
    QStackedWidget *stackedWidget = new QStackedWidget;
    QWidget *page1 = new QWidget;
    QWidget *page2 = new QWidget;
    stackedWidget->addWidget(page1);
    stackedWidget->addWidget(page2);
2. ‌在代码中切换页面
// 获取 QStackedWidget 指针(假设对象名为 stackedWidget)
QStackedWidget *stackedWidget = findChild<QStackedWidget*>("stackedWidget");// 通过索引切换页面(从 0 开始)
stackedWidget->setCurrentIndex(1);// 通过页面指针切换
QWidget *page2 = stackedWidget->widget(1);
stackedWidget->setCurrentWidget(page2);

三、完整示例

‌场景‌:实现一个包含 3 个页面的向导,通过按钮切换页面。

1. ‌头文件 mainwindow.h

#include <QMainWindow>
#include <QStackedWidget>
#include <QPushButton>class MainWindow : public QMainWindow {Q_OBJECT
public:MainWindow(QWidget *parent = nullptr);private slots:void switchToPage1();void switchToPage2();void switchToPage3();private:QStackedWidget *stackedWidget;QPushButton *btnPage1, *btnPage2, *btnPage3;
};

2. ‌源文件 mainwindow.cpp

#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {// 初始化堆栈窗口stackedWidget = new QStackedWidget(this);setCentralWidget(stackedWidget);// 添加三个页面QWidget *page1 = new QWidget();page1->setStyleSheet("background: #FF9999;"); // 示例样式stackedWidget->addWidget(page1);QWidget *page2 = new QWidget();page2->setStyleSheet("background: #99FF99;");stackedWidget->addWidget(page2);QWidget *page3 = new QWidget();page3->setStyleSheet("background: #9999FF;");stackedWidget->addWidget(page3);// 添加切换按钮btnPage1 = new QPushButton("Page 1", this);btnPage2 = new QPushButton("Page 2", this);btnPage3 = new QPushButton("Page 3", this);// 按钮位置布局(简单示例)btnPage1->move(10, 10);btnPage2->move(110, 10);btnPage3->move(210, 10);// 连接信号槽connect(btnPage1, &QPushButton::clicked, this, &MainWindow::switchToPage1);connect(btnPage2, &QPushButton::clicked, this, &MainWindow::switchToPage2);connect(btnPage3, &QPushButton::clicked, this, &MainWindow::switchToPage3);
}// 槽函数:切换页面
void MainWindow::switchToPage1() { stackedWidget->setCurrentIndex(0); }
void MainWindow::switchToPage2() { stackedWidget->setCurrentIndex(1); }
void MainWindow::switchToPage3() { stackedWidget->setCurrentIndex(2); }

‌3. ‌主函数 main.cpp

#include <QApplication>
#include "mainwindow.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;w.resize(400, 300);w.show();return a.exec();
}

四、高级用法

1. ‌动态添加/删除页面

// 动态添加页面
QWidget *newPage = new QWidget();
int index = stackedWidget->addWidget(newPage);// 动态删除页面
QWidget *pageToRemove = stackedWidget->widget(2);
stackedWidget->removeWidget(pageToRemove);
delete pageToRemove; // 手动释放内存

2. ‌结合导航栏(如 QListWidget)

QListWidget *listWidget = new QListWidget(this);
listWidget->addItems({"Page 1", "Page 2", "Page 3"});// 点击列表项切换页面
connect(listWidget, &QListWidget::currentRowChanged, stackedWidget, &QStackedWidget::setCurrentIndex);


文章转载自:

http://BenxZUjm.bscsp.cn
http://SnQo4hHf.bscsp.cn
http://YNfZrQbL.bscsp.cn
http://NBJYjA7d.bscsp.cn
http://COpE8JfC.bscsp.cn
http://gJCstzEY.bscsp.cn
http://qWnZlAbE.bscsp.cn
http://Q7RmQK5M.bscsp.cn
http://o3oJxcqf.bscsp.cn
http://DFTDWy8g.bscsp.cn
http://Fo097xJx.bscsp.cn
http://vK3Cm7L0.bscsp.cn
http://Clg8sgrP.bscsp.cn
http://1piBk47I.bscsp.cn
http://crPWwl2O.bscsp.cn
http://kkehwSmH.bscsp.cn
http://30HMaKWP.bscsp.cn
http://EyNfSEIJ.bscsp.cn
http://d7NUeuyZ.bscsp.cn
http://bomoopzz.bscsp.cn
http://i6czllWU.bscsp.cn
http://x35ciH6y.bscsp.cn
http://GI4yMeMz.bscsp.cn
http://iqfiCqDb.bscsp.cn
http://0B7LwjNT.bscsp.cn
http://4m86AYMa.bscsp.cn
http://mI9WySO9.bscsp.cn
http://MVSV1ufc.bscsp.cn
http://OsnVFEil.bscsp.cn
http://f3Wbqfk2.bscsp.cn
http://www.dtcms.com/wzjs/647470.html

相关文章:

  • 做安全防护信息的网站个人建站怎么做网站好
  • 阿里巴巴网站分类板块做全屏电子政务门户网站建设汇报
  • 建网站教程网站建设大图
  • 网站建设佰首选金手指六公司网站引导页
  • 高邮市城乡建设局网站proxy网站
  • 佛山网站上排名装修之家
  • 苏州企业网站建设专家那些网站用不着做优化
  • 淄博网站建设哪家便宜深圳自适应网站制作
  • 网站建设 电子商务网站开发洛阳霞光只做有效果的网站
  • 上海建筑网站大全网页游戏大全电脑版在线玩
  • 数据网站建设哪个好wordpress 您不能在您服务器的地址上安装一个网络
  • 世纪购网站开发招聘网页自我介绍制作模板
  • 云南省住房和城乡建设厅勘察设计处网站wordpress必做
  • 安徽中擎建设公司网站wordpress 地图相册
  • dw做的网页在网站图片不显示网站模板 英文
  • 绵阳网站托管长宁网站建设制作
  • 广东网站开发搭建电脑室内装修设计软件
  • 开发网站要多少钱网站 设计 案例 简单
  • 网站设计西安学习上虞宇普电器网站建设
  • 山东省示范校建设网站北京互联网公司开发的网站
  • 个人备案后可以做电影网站吗苏州集团网站设计定制
  • 个人网站备案名和运营西安注册公司地址可以是住宅吗
  • 网站开发验收确 认书海外公司推广
  • 做商城网站的公司中国造价网
  • 官网域名改版方案山东seo网络推广
  • 网站域名后缀微信公众号免费导入wordpress
  • excel表如何做网站连接四川做网站设计哪家好
  • 行业网站维护网站建设公司哪里找
  • 石家庄网站建设推广电话wordpress菜单图标左右
  • 长沙网站的建设汉中网站建设有限公司