1) QListWidget::QListWidget ( QWidget *parent = 0 ) // 构造一个父对象为parent的ListWidget。 2) void QListWidget::addItem ( const QString & label ) // 添加一个新的项目,在新添加的项目中添加label标签。 3) void QListWidget::addItem ( QListWidgetItem *item ) // 添加项目item。 4) void QListWidget::addItems ( const QStringList & labels ) // 添加一列项目。 5) void QListWidget::clear () 〔slot〕 // 清除该ListWidget中的所有项目。 6) QListWidgetItem *QListWidget::currentItem () const //返回当前活动项目。 7) void QListWidget::editItem ( QListWidgetItem *item ) //如果项目item是可编辑的,开始编辑项目item。 8) QList<QListWidgetItem *> QListWidget::findItems( constQString & text, QT::MatchFlags flags ) const //查找匹配字符串text的项目,并返回查找结果。 9) void QListWidget::insertItem ( int row, QListWidgetItem *item ) //在行row处插入项目item。 10) void QListWidget::insertItem ( int row, const QString &label ) //这是一个重载函数,函数功能同9),在行row处插入标签为label的新项目。 11) voidQListWidget::insertItems ( int row, const QStringList & labels ) //在行row处插入一列项目。 12) QListWidgetItem *QListWidget::item ( int row ) const //返回行row处的项目,如果行row处没有项目则返回0。 13) QListWidgetItem*QListWidget::itemAt ( const QPoint & p ) const //返回点p处的项目。 14) QListWidgetItem *QListWidget::itemAt ( int x, int y ) const //返回坐标(x,y)处的项目。 15) QWidget *QListWidget::itemWidget ( QListWidgetItem *item ) const //返回项目item处显示的控件。 16) QListWidgetItem *QListWidget::takeItem ( int row ) // 移除行row处的项目,并返回项目控件。 17) void QListWidget::removeItemWidget ( QListWidgetItem *item ) //删除项目item处的控件。 18) int QListWidget::row ( const QListWidgetItem *item ) const //返回项目item所在的行。 19) QList<QListWidgetItem *> QListWidget::selectedItems ()const //返回所有被选中的项目的控件。 20) void QListWidget::setCurrentItem ( QListWidgetItem *item ) //设置项目item为当前项目。 21) void QListWidget::setItemWidget ( QListWidgetItem *item, QWidget*widget ) //设置控件widget为项目item的显示控件。 22) void QListWidget::setItemWidget ( QListWidgetItem *item, QWidget*widget ) //这是个重载函数,函数功能同23)。 23) voidQListWidget::sortItems ( QT::SortOrder order = QT::AscendingOrder ) //把项目按照order进行排序。
//flowchartsymbolpicker.h #ifndef FLOWCHARTSYMBOLPICKER_H #define FLOWCHARTSYMBOLPICKER_H #include <QDialog> #include <QMap> #include <QIcon> class QDialogButtonBox; class QListWidget; class FlowChartSymbolPicker : public QDialog { Q_OBJECT public: FlowChartSymbolPicker(const QMap<int, QString> &symbolMap, QWidget *parent = 0); int selectedId() const { return id; } void done(int result); ~FlowChartSymbolPicker(); private slots: void message(); private: QIcon iconForSymbol(const QString &symbolName); QListWidget *listWidget; QDialogButtonBox *buttonBox; int id; }; #endif // FLOWCHARTSYMBOLPICKER_H //flowchartsymbolpicker.cpp #include <QListWidget> #include <QListWidgetItem> #include <QDialogButtonBox> #include <QVBoxLayout> #include <QMessageBox> #include "flowchartsymbolpicker.h" FlowChartSymbolPicker::FlowChartSymbolPicker(const QMap<int, QString> &symbolMap, QWidget *parent) : QDialog(parent) { id = -1; listWidget = new QListWidget; listWidget->setIconSize(QSize(60,60)); listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed); QMapIterator<int, QString> i(symbolMap); while (i.hasNext()) { i.next(); QListWidgetItem *item = new QListWidgetItem(i.value(), listWidget); item->setIcon(iconForSymbol(i.value())); item->setData(Qt::UserRole, i.key()); } buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(buttonBox, SIGNAL(accepted()), this, SLOT(message())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(listWidget); layout->addWidget(buttonBox); setLayout(layout); setWindowTitle(tr("Flowchart Symbol Picker")); } void FlowChartSymbolPicker::message() { QMessageBox::about(this, tr("AHA"),tr("Thanks")); } void FlowChartSymbolPicker::done(int result) { id = -1; if (result == QDialog::Accepted) { QListWidgetItem *item = listWidget->currentItem(); if (item) id = item->data(Qt::UserRole).toInt(); } QDialog::done(result); } QIcon FlowChartSymbolPicker::iconForSymbol(const QString &symbolName) { QString fileName = ":/images/" + symbolName.toLower(); fileName.replace(' ', '_'); return QIcon(fileName); } FlowChartSymbolPicker::~FlowChartSymbolPicker() { } //main.cpp #include "flowchartsymbolpicker.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); QMap<int, QString> map; map.insert(77, QObject::tr("7")); map.insert(78, QObject::tr("11")); map.insert(79, QObject::tr("12")); map.insert(80, QObject::tr("13")); map.insert(81, QObject::tr("14")); map.insert(82, QObject::tr("15")); map.insert(83, QObject::tr("16")); map.insert(84, QObject::tr("ali5")); map.insert(85, QObject::tr("l5")); map.insert(86, QObject::tr("oh5")); FlowChartSymbolPicker window(map); window.resize(300, 300); window.show(); return a.exec(); }
文章来源: QListWidget项视图类之