QListWidget和QListWidgetItem的简单使用

长平狐 发布于 2013/01/11 10:33
阅读 4K+
收藏 0

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


例子1:


#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QListWidget>
#include <QListWidgetItem>
int main(int argc, char** argv)
{
	QApplication app(argc, argv);
	QWidget* widget = new QWidget;
	QListWidget* listWidget = new QListWidget;
	QVBoxLayout* layout = new QVBoxLayout;
	QListWidgetItem* lst1 = new QListWidgetItem("data", listWidget);
	QListWidgetItem* lst2 = new QListWidgetItem("decision", listWidget);
	QListWidgetItem* lst3 = new QListWidgetItem("document", listWidget);
	QListWidgetItem* lst4 = new QListWidgetItem("process", listWidget);
	QListWidgetItem* lst5 = new QListWidgetItem("printer", listWidget);
	listWidget->insertItem(1, lst1);
	listWidget->insertItem(2, lst2);
	listWidget->insertItem(3, lst3);
	listWidget->insertItem(4, lst4);
	listWidget->insertItem(5, lst5);
	listWidget->show();
	layout->addWidget(listWidget);
	widget->setLayout(layout);
	widget->show();
	app.exec();
	
}

 

运行如下图:

 

 

 

 

第2个例子:


#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QListWidget>
#include <QListWidgetItem>
int main(int argc, char** argv)
{
	QApplication app(argc, argv);
	QWidget* widget = new QWidget;
	QListWidget* listWidget = new QListWidget;
	QVBoxLayout* layout = new QVBoxLayout;
	QListWidgetItem* lst1 = new QListWidgetItem(QIcon("images/data.png"), "data", listWidget);
	QListWidgetItem* lst2 = new QListWidgetItem(QIcon("images/decision.png"), "decision", listWidget);
	QListWidgetItem* lst3 = new QListWidgetItem(QIcon("images/document.png"), "document", listWidget);
	QListWidgetItem* lst4 = new QListWidgetItem(QIcon("images/process.png"), "process", listWidget);
	QListWidgetItem* lst5 = new QListWidgetItem(QIcon("images/printer.png"), "printer", listWidget);
	listWidget->insertItem(1, lst1);
	listWidget->insertItem(2, lst2);
	listWidget->insertItem(3, lst3);
	listWidget->insertItem(4, lst4);
	listWidget->insertItem(5, lst5);
	listWidget->show();
	layout->addWidget(listWidget);
	widget->setLayout(layout);
	widget->show();
	app.exec();
	
}

 

运行如下图:

 


 

第3个例子:

 

#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QListWidget>
#include <QListWidgetItem>
#include <QLabel>
int main(int argc, char** argv)
{
	QApplication app(argc, argv);
	QWidget* widget = new QWidget;
	QListWidget* listWidget = new QListWidget;
	QHBoxLayout* layout = new QHBoxLayout;
	QLabel* label = new QLabel;
	label->setFixedWidth(100);
	QListWidgetItem* lst1 = new QListWidgetItem(QIcon("images/data.png"), "data", listWidget);
	QListWidgetItem* lst2 = new QListWidgetItem(QIcon("images/decision.png"), "decision", listWidget);
	QListWidgetItem* lst3 = new QListWidgetItem(QIcon("images/document.png"), "document", listWidget);
	QListWidgetItem* lst4 = new QListWidgetItem(QIcon("images/process.png"), "process", listWidget);
	QListWidgetItem* lst5 = new QListWidgetItem(QIcon("images/printer.png"), "printer", listWidget);
	listWidget->insertItem(1, lst1);
	listWidget->insertItem(2, lst2);
	listWidget->insertItem(3, lst3);
	listWidget->insertItem(4, lst4);
	listWidget->insertItem(5, lst5);
	QObject::connect(listWidget, SIGNAL(currentTextChanged(const QString &)), label, SLOT(setText(const QString &)));
	listWidget->show();
	layout->addWidget(listWidget);
	layout->addWidget(label);
	widget->setLayout(layout);
	widget->show();
	app.exec();
	
}

 

运行如下图:

 


原文链接:http://blog.csdn.net/fjb2080/article/details/4922490
加载中
返回顶部
顶部