QListWidget

QListWidget可以顯示一個清單,清單中每個項目是QListWidgetItem的實例,每個項目皆供使用者進行選擇,我們這邊展現QListWidget的用法,程式中設定了兩個元件,QLabel和QListWidget,當選擇清單中的項目時,QLabel會顯示目前清單中所選中的項目內容字串。


widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QHBoxLayout>
#include <QLabel>
#include <QListWidget>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
private:
    QLabel *myLabel;
    QListWidget *myListWidget;
    QHBoxLayout *myLayout;
};

#endif 

widget.cpp

#include "widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent)
{
    setWindowTitle(tr("QListWidget"));
    myLabel = new QLabel;
    myLabel->setFixedWidth (50);
    myLabel->setAlignment(Qt::AlignCenter);

    myListWidget = new QListWidget;
    myListWidget->insertItem(0, new QListWidgetItem(QIcon("left.jpg"), "left"));
    myListWidget->insertItem(1, new QListWidgetItem(QIcon("right.jpg"), "right"));
    //myListWidget->setViewMode(QListView::IconMode); //用大圖示顯示
    QObject::connect(myListWidget, SIGNAL(currentTextChanged(const QString &)),myLabel, SLOT(setText(const QString &)));

    myLayout = new QHBoxLayout(this);
    myLayout->addWidget(myLabel);
    myLayout->addWidget(myListWidget);
}

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

QListWidget


我們可以設定QListWidget::setViewMode(),使得QListWidget有不同呈現方式,IconMode表示用大圖示顯示,所以當我們程式碼多加此行:

myListWidget->setViewMode(QListView::IconMode); 

此時的結果將變成:

QListWidget