QListWidget项视图类之

匿名 (未验证) 提交于 2019-12-03 00:21:02

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(); }




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!