Qt 练习题:基于 QListWidget 和 QStackedWidget 的页面切换
Qt 练习题:基于 QListWidget 和 QStackedWidget 的页面切换
题目描述:
请使用 Qt 设计一个窗口,其中包含一个 QListWidget 和一个 QStackedWidget。要求实现以下功能:当用户双击 QListWidget 中的某一项时,QStackedWidget 切换到对应的页面(索引相同)。
当 QStackedWidget 页面发生切换时,在控制台输出当前页面的索引值。
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QListWidget>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{ui->stackedWidget->setCurrentIndex( ui->listWidget->row(item));// 获取被双击项的索引// int index = ui->listWidget->row(item);// 切换到 QStackedWidget 的第 0 页//ui->stackedWidget->setCurrentIndex(row);}void Widget::on_stackedWidget_currentChanged(int index)
{qDebug()<<"页面改变"<<index;
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QListWidget>
#include <QStackedWidget>
#include<QDebug>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_stackedWidget_currentChanged(int arg1);private:Ui::Widget *ui;};
#endif // WIDGET_H