QStackedLayout栈布局小案例
一、概述
使用QStackedLayout+QListWidget切换布局。如下:
二、示例
#include "StackedLayoutExampleWindow.h" StackedLayoutExampleWindow::StackedLayoutExampleWindow(QWidget *parent) : QWidget(parent) { this->setWindowTitle("StackedLayout布局"); //创建主容器 QHBoxLayout* hLayout = new QHBoxLayout; //创建一个ListWidget(列表) QListWidget* listWidget = new QListWidget(this); listWidget->setMinimumWidth(150); listWidget->setFont(QFont("宋体", 14)); listWidget->addItem("添加Button"); listWidget->addItem("添加图片"); QWidget* widget1 = new QWidget(this);//第一个栈容器的内容 widget1->setMinimumSize(400, 400); Button* but1 = new Button(widget1); but1->setText("提莫队长正在待命"); QWidget* widget2 = new QWidget(this);//第二个栈容器的内容 widget2->setMinimumSize(400, 400); QLabel* image = new QLabel(widget2); image->setScaledContents(true); image->setFixedSize(400, 400); cv::Mat src = imread("images/flowers.jpeg"); image->setPixmap(ImageUtils::getPixmap(src)); QStackedLayout* stackedLayout = new QStackedLayout;//栈布局 stackedLayout->addWidget(widget1); stackedLayout->addWidget(widget2); hLayout->addWidget(listWidget, 1);//左边容器布局占整个容器的1/5 hLayout->addLayout(stackedLayout, 4);//右边容器布局,占整个容器的4/5 //把布局添加到Widget中 this->setLayout(hLayout); //给listWidget添加事件,监听QListWidget::currentRowChanged信号,&QStackedLayout::setCurrentIndex槽函数 connect(listWidget, &QListWidget::currentRowChanged, stackedLayout, &QStackedLayout::setCurrentIndex); } StackedLayoutExampleWindow::~StackedLayoutExampleWindow() { }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
2021-12-22 Qt创建一个按钮,点击按钮关闭窗口
2013-12-22 Java设置以及获取JavaBean私有属性进阶
2013-12-22 Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值