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