QListWidget可以顯示一個項目清單,清單中每個項目是QListWidgetItem的實例,每個項目可以設定文字與圖像,以供使用者進行項目的選擇,以下來示範一個簡單的例子:
#include <QApplication> #include <QHBoxLayout> #include <QLabel> #include <QListWidget>
int main(int argc, char *argv[]) { QApplication app(argc, argv);
QWidget *window = new QWidget; window->setWindowTitle("QListWidget & Item");
QLabel *label = new QLabel; label->setFixedWidth (100); QListWidget *listWidget = new QListWidget; listWidget->insertItem(0, new QListWidgetItem( QIcon("caterpillar_head.jpg"), "caterpillar")); listWidget->insertItem(1, new QListWidgetItem( QIcon("momor_head.jpg"), "momor")); listWidget->insertItem(2, new QListWidgetItem( QIcon("bush_head.jpg"), "bush")); listWidget->insertItem(3, new QListWidgetItem( QIcon("bee_head.jpg"), "bee")); listWidget->insertItem(4, new QListWidgetItem( QIcon("cat_head.jpg"), "cat")); QObject::connect(listWidget, SIGNAL(currentTextChanged (const QString &)), label, SLOT(setText(const QString &))); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(label); layout->addWidget(listWidget); window->setLayout(layout); window->show();
return app.exec(); }
程式中設定了兩個元件,QLabel與QListWidget,並連接QListWidget的currentTextChanged()及setText(),當您選擇清單中的項目時,QLabel會顯示目前清單中所選中的項目。QListWidgetItem還可以使用setCheckState()方法設定是否具備核取方塊。
下圖為執行時的畫面:

您也可以設定QListWidget的setViewMode(),它繼承自QListView,可以設定QListView::ListMode、
QListView::IconMode,設定為QListView::IconMode可以以大圖示顯示,例如:
listWidget->setViewMode(QListView::IconMode);
設定為大圖示的畫面如下所示:

|
|