分享

QListView和QListWidget

 tianht 2015-05-22

http://blog.csdn.net/leaf6094189/article/details/5803763

今天搞了一个早上,终于弄清楚了。

QListView是基于Model,而QListWidget是基于Item。这是它们的本质区别。

往QListView中添加条目需借助QAbstractListModel:

如:

    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(
new Ui::MainWindow)
{
    ui
->setupUi(this);
    QStringListModel
* slm = new QStringListModel(this);
    QStringList
* sl = new QStringList();
    sl
->append("asdfsadfsa");
    sl
->append("asdfsadfsa");
    sl
->append("asdfsadfsa");
    slm
->setStringList(*sl);
    ui
->listView->setModel(slm);
    delete sl;

}

而在QListWidget中添加条目可以直接additem

如:

     QListWidget list;
  list.setViewMode(QListWidget::IconMode );
  list.setResizeMode(QListWidget::Adjust);
  list.setMovement(QListWidget::Static);
  for(int i =0; i < 100 ; i ++){
  QListWidgetItem *item = new QListWidgetItem(&list);
  QStyle::StandardPixmap sp = (QStyle::StandardPixmap)(i % 57);

  item->setData(Qt::DecorationRole, qApp->style()->standardPixmap(sp).scaled(QSize(16,16), Qt::KeepAspectRatio, Qt::SmoothTransformation) );
  item->setData(Qt::DisplayRole,QObject::tr("Item %1").arg(i));
  }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约