QListWidget和QListWidgetItem的简单使用

来源:互联网 发布:ipone淘宝历史版本下载 编辑:程序博客网 时间:2024/05/07 11:52

QListWidget可以显示一个清单,清单中的每个项目是QListWidgetItem的一个实例,每个项目可以通过QListWidgetItem来操作。可以通过QListWidgetItem来设置每个项目的图像与文字。下面说明3个例子,一个例子只显示文字,一个例子显示文字和图标,最后一个例子增加每个项的选择的信号。


例子1:


[cpp] view plaincopyprint?
  1. #include <QApplication>  
  2. #include <QWidget>  
  3. #include <QVBoxLayout>  
  4. #include <QListWidget>  
  5. #include <QListWidgetItem>  
  6. int main(int argc, char** argv)  
  7. {  
  8.     QApplication app(argc, argv);  
  9.     QWidget* widget = new QWidget;  
  10.     QListWidget* listWidget = new QListWidget;  
  11.     QVBoxLayout* layout = new QVBoxLayout;  
  12.     QListWidgetItem* lst1 = new QListWidgetItem("data", listWidget);  
  13.     QListWidgetItem* lst2 = new QListWidgetItem("decision", listWidget);  
  14.     QListWidgetItem* lst3 = new QListWidgetItem("document", listWidget);  
  15.     QListWidgetItem* lst4 = new QListWidgetItem("process", listWidget);  
  16.     QListWidgetItem* lst5 = new QListWidgetItem("printer", listWidget);  
  17.     listWidget->insertItem(1, lst1);  
  18.     listWidget->insertItem(2, lst2);  
  19.     listWidget->insertItem(3, lst3);  
  20.     listWidget->insertItem(4, lst4);  
  21.     listWidget->insertItem(5, lst5);  
  22.     listWidget->show();  
  23.     layout->addWidget(listWidget);  
  24.     widget->setLayout(layout);  
  25.     widget->show();  
  26.     app.exec();  
  27.       
  28. }  

 

运行如下图:

 

 

 

 

第2个例子:


[cpp] view plaincopyprint?
  1. #include <QApplication>  
  2. #include <QWidget>  
  3. #include <QVBoxLayout>  
  4. #include <QListWidget>  
  5. #include <QListWidgetItem>  
  6. int main(int argc, char** argv)  
  7. {  
  8.     QApplication app(argc, argv);  
  9.     QWidget* widget = new QWidget;  
  10.     QListWidget* listWidget = new QListWidget;  
  11.     QVBoxLayout* layout = new QVBoxLayout;  
  12.     QListWidgetItem* lst1 = new QListWidgetItem(QIcon("images/data.png"), "data", listWidget);  
  13.     QListWidgetItem* lst2 = new QListWidgetItem(QIcon("images/decision.png"), "decision", listWidget);  
  14.     QListWidgetItem* lst3 = new QListWidgetItem(QIcon("images/document.png"), "document", listWidget);  
  15.     QListWidgetItem* lst4 = new QListWidgetItem(QIcon("images/process.png"), "process", listWidget);  
  16.     QListWidgetItem* lst5 = new QListWidgetItem(QIcon("images/printer.png"), "printer", listWidget);  
  17.     listWidget->insertItem(1, lst1);  
  18.     listWidget->insertItem(2, lst2);  
  19.     listWidget->insertItem(3, lst3);  
  20.     listWidget->insertItem(4, lst4);  
  21.     listWidget->insertItem(5, lst5);  
  22.     listWidget->show();  
  23.     layout->addWidget(listWidget);  
  24.     widget->setLayout(layout);  
  25.     widget->show();  
  26.     app.exec();  
  27.       
  28. }  

 

运行如下图:

 

 

 

第3个例子:

 

[cpp] view plaincopyprint?
  1. #include <QApplication>  
  2. #include <QWidget>  
  3. #include <QHBoxLayout>  
  4. #include <QListWidget>  
  5. #include <QListWidgetItem>  
  6. #include <QLabel>  
  7. int main(int argc, char** argv)  
  8. {  
  9.     QApplication app(argc, argv);  
  10.     QWidget* widget = new QWidget;  
  11.     QListWidget* listWidget = new QListWidget;  
  12.     QHBoxLayout* layout = new QHBoxLayout;  
  13.     QLabel* label = new QLabel;  
  14.     label->setFixedWidth(100);  
  15.     QListWidgetItem* lst1 = new QListWidgetItem(QIcon("images/data.png"), "data", listWidget);  
  16.     QListWidgetItem* lst2 = new QListWidgetItem(QIcon("images/decision.png"), "decision", listWidget);  
  17.     QListWidgetItem* lst3 = new QListWidgetItem(QIcon("images/document.png"), "document", listWidget);  
  18.     QListWidgetItem* lst4 = new QListWidgetItem(QIcon("images/process.png"), "process", listWidget);  
  19.     QListWidgetItem* lst5 = new QListWidgetItem(QIcon("images/printer.png"), "printer", listWidget);  
  20.     listWidget->insertItem(1, lst1);  
  21.     listWidget->insertItem(2, lst2);  
  22.     listWidget->insertItem(3, lst3);  
  23.     listWidget->insertItem(4, lst4);  
  24.     listWidget->insertItem(5, lst5);  
  25.     QObject::connect(listWidget, SIGNAL(currentTextChanged(const QString &)), label, SLOT(setText(const QString &)));  
  26.     listWidget->show();  
  27.     layout->addWidget(listWidget);  
  28.     layout->addWidget(label);  
  29.     widget->setLayout(layout);  
  30.     widget->show();  
  31.     app.exec();  
  32.       
  33. }  

 

运行如下图:

 

原创粉丝点击