当前位置: 首页 > 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();
}

相关文章:

  • 队列的顺序结构—循环队列的判断条件(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车牌识别算法源码之——车牌识别算法初体验
  • 电商智能客服实战(一)---概要设计
  • 邢台建站/浙江搜索引擎优化
  • 收费网站建设视频教程免费下载/app有哪些推广方式
  • 日本职人手做网站/十大新媒体平台有哪些
  • 做网站业务的怎么寻找客户/网站没有友情链接
  • 嵩县网站开发/荆门网络推广
  • 云端做效果图的网站/广州优化公司哪家好