实现QListWidget 和 QStackWidget的联动 listWidget 双击第几项,stackWidget 就切换到第几页
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMainWindow>
#include <QStackedWidget>
#include <QPushButton>
#include <QListWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_listWidget_itemDoubleClicked(QListWidgetItem *item);// 双击项槽函数void on_A_clicked();void on_B_clicked();private:Ui::Widget *ui;};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QVBoxLayout>
#include <QLabel>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);}Widget::~Widget()
{delete ui;
}void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{// 获取双击项的索引int index = ui->listWidget->row(item);// 切换到对应的页面ui->stackedWidget->setCurrentIndex(index);
}void Widget::on_A_clicked()
{int currentIndex = ui->stackedWidget->currentIndex(); // 获取当前页面索引if (currentIndex > 0) { // 如果当前页面不是第一页ui->stackedWidget->setCurrentIndex(currentIndex - 1); // 切换到上一页}
}void Widget::on_B_clicked()
{int currentIndex = ui->stackedWidget->currentIndex(); // 获取当前页面索引if (currentIndex < ui->stackedWidget->count() - 1) { // 如果当前页面不是最后一页ui->stackedWidget->setCurrentIndex(currentIndex + 1); // 切换到下一页}
}