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

day3作业

实现QListWidget 和 QStackWidget的联动 listWidget 双击第几项,stackWidget 就切换到第几页

#ifndef WIDGET_H
#define WIDGET_H

#include <QMainWindow>
#include <QStackedWidget>
#include <QListWidget>

namespace Ui {
class Widget; // 声明Ui类
}

class Widget : public QMainWindow {
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
    QStackedWidget *stackedWidget;
    QListWidget *listWidget;
};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>
#include <QListWidget>
#include <QListWidgetItem>
#include <QTextEdit>
#include <QStackedWidget>

Widget::Widget(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::Widget), stackedWidget(new QStackedWidget(this)), listWidget(new QListWidget(this)) {
    ui->setupUi(this);
    setCentralWidget(stackedWidget);

    QWidget *page1 = new QWidget;
    QWidget *page2 = new QWidget;

  
    QTextEdit *textEdit1 = new QTextEdit("页面1的内容", page1);
    QTextEdit *textEdit2 = new QTextEdit("页面2的内容", page2);

 
    QVBoxLayout *layout1 = new QVBoxLayout(page1);
    layout1->addWidget(textEdit1);
    page1->setLayout(layout1);

    QVBoxLayout *layout2 = new QVBoxLayout(page2);
    layout2->addWidget(textEdit2);
    page2->setLayout(layout2);

    stackedWidget->addWidget(page1);
    stackedWidget->addWidget(page2);
  
    QVBoxLayout *mainLayout = new QVBoxLayout;
    mainLayout->addWidget(listWidget);
    mainLayout->addWidget(stackedWidget);
    setLayout(mainLayout);

    new QListWidgetItem("页面1", listWidget);
    new QListWidgetItem("页面2", listWidget);
    connect(listWidget, &QListWidget::itemDoubleClicked, this, [this](QListWidgetItem *item) {
        if (item) {
            int row = listWidget->row(item);  // 获取单击项的行号
            stackedWidget->setCurrentWidget(row);  
        }
    });
}

Widget::~Widget() {
    // 清理代码
}
#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    Widget widget;
    widget.show();
    return app.exec();
}

http://www.dtcms.com/a/49235.html

相关文章:

  • 队列的顺序结构—循环队列的判断条件(rear + 1) % MAXSIZE分析
  • intra-mart实现logicDesigner与forma联动
  • AI编程工具-(四)
  • 五种经典算法路径规划—遗传算法、麻雀算法、狼群优化、粒子群算法、差分进化算法(Matlab源码)
  • IO进程线程2
  • maven高级-05.私服
  • 从零开始实现机器臂仿真(UR5)
  • 计算机毕业设计SpringBoot+Vue.js医院挂号就诊系统(源码+文档+PPT+讲解)
  • 【Azure 架构师学习笔记】- Azure Databricks (15) --Delta Lake 和Data Lake
  • Python-07PDF转Word
  • SpringCloud系列教程(十二):网关配置动态路由
  • Netty笔记3:NIO编程
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例2: 分页和排序
  • 【深入OpenCV图像处理:从基础到实战应用】
  • 内网渗透信息收集linuxkali扫描ip段,收集脚本(web安全)
  • 电子知识笔记—电磁炉单管、持续加热单管和半桥驱动方案解析
  • langchain 中 RecursiveUrlLoader 使用
  • 【华为OD机考】华为OD笔试真题解析(16)--微服务的集成测试
  • Hi3516CV610车牌识别算法源码之——车牌识别算法初体验
  • 电商智能客服实战(一)---概要设计
  • 2025嵌入式软件开发工程师--音频方向
  • 灵鸢系统,引领车与无人机深度融合新潮流
  • 网络基础概述
  • 【现代前端框架中本地图片资源的处理方案】
  • c++ std::basic_string_view、std::span使用笔记
  • SpringAI 调用本地ollama大模型
  • C++:四大强制类型转换
  • Redis7——进阶篇(二)
  • VirtualBox虚拟机转VM虚拟机
  • AIGC(生成式AI)试用 25 -- 跟着清华教程学习 - DeepSeek+DeepResearch让科研像聊天一样简单