`
izuoyan
  • 浏览: 8968023 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Qt学习之路(39): QListWidget

阅读更多
版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/251391
前面一节简单概述著名的MVC模式在Qt中的实现,现在我们从QListWidget开始了解Qt提供的一系列方便的item view类。
第一个要说的是QListWidget。这个类为我们展示一个List列表的视图。下面还是先看代码:
listwidget.h
#ifndef LISTWIDGET_H
#define LISTWIDGET_H

#include <QtGui>

class ListWidget : public QWidget
{
public :
ListWidget();

private :
QLabel *label;
QListWidget *list;
};

#endif // LISTWIDGET_H
listwidget.cpp
#include "listwidget.h"

ListWidget::ListWidget()
{
label = new QLabel;
label->setFixedWidth(70);
list = new QListWidget;
list->addItem(new QListWidgetItem(QIcon(":/images/line.PNG" ), tr("Line" )));
list->addItem(new QListWidgetItem(QIcon(":/images/rect.PNG" ), tr("Rectangle" )));
list->addItem(new QListWidgetItem(QIcon(":/images/oval.PNG" ), tr("Oval" )));
list->addItem(new QListWidgetItem(QIcon(":/images/tri.PNG" ), tr("Triangle" )));
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(label);
layout->addWidget(list);

setLayout(layout);

connect(list, SIGNAL(currentTextChanged(QString)), label, SLOT(setText(QString)));
}
main.cpp
#include <QtGui>
#include "listwidget.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ListWidget lw;
lw.resize(400, 200);
lw.show();
return a.exec();
}
一共三个文件,但是都比较清晰。我们先建立了一个ListWidget类,然后在main函数中将其显示出来。
ListWidget类中包含一个QLabel对象和一个QListWidget对象。创建这个QListWidget对象很简单,只需要使用 new运算符创建出来,然后调用addItem()函数即可将item添加到这个对象中。我们添加的对象是QListWidgetItem的指针,它有四 个重载的函数,我们使用的是其中的一个,它接受两个参数,第一个是QIcon引用类型,作为item的图标,第二个是QString类型,作为这个 item后面的文字说明。当然,我们也可以使用insertItem()函数在特定的位置动态的增加item,具体使用请查阅API文档。最后,我们将这 个QListWidget的currentTextChanged()信号同QLabel的setText()连接起来,这样,在我们点击item的时 候,label上面的文字就可以改变了。
我们还可以设置viewModel这个参数,来确定使用不同的视图进行显示。比如,我们使用下面的语句:
list->setViewMode(QListView::IconMode);
再来看看程序界面吧!

本文出自 “豆子空间 ” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/251391

分享到:
评论

相关推荐

    Qt学习之QListWidget添加item

    Qt学习之QListWidget添加item

    QT学习之路2 (1~82篇)

    42. QListWidget、QTreeWidget 和 QTableWidget 43. QStringListModel 44. QFileSystemModel 45. 模型 46. 视图和委托 47. 视图选择 48. QSortFilterProxyModel 49. 自定义只读模型 50. 自定义可编辑模型 51. 布尔...

    Qt学习之路2 (基于Qt5.0.1共58章)

    基于最新的Qt5.0.1的学习书籍,非常适合QT5的入门学习。 目录 1. 序 2. Qt 前言 3. Hello, world! 4. 信号槽 5. 自定义信号槽 6. Qt 模块简介 7. MainWindow 简介 8. 添加动作 9. 资源文件 10. 对象模型 11. 布局...

    整合对Qt所有部件的描述和使用, 工程环境是Qt-5.12

    整合对Qt所有部件(QListView\QListWidget\QTreeView\QTreeWidget\QTableView\QTableWidget\QColumnView\QUndoView, 所有输入框, 所有容器, 所有显示框, 所有按钮)的描述和使用, 对一些model进行自定义使用, 代码注释...

    QListWidget内拖拽item

    自定义一个新的YYListWidget,实现QListWidget内item带Widget拖拽并且移动item位置。快速学习在同一个QListWidget的item之间移动换序。

    Qt翻页,能拖动移动,挺好的学习计划

    Qt翻页,能拖动移动,挺好的学习计划,适合初学者学习

    C++Qt实现拖拽按钮插入指定位置并重新排序

    1.效果类似于Windows桌面应用可以通过鼠标拖拽插入指定位置,并自动排序的效果。 2.开发环境Qt Creator,...7.目标人群:想学习使用MousePressed、MouseMoved、MouseReleased实现拖拽功能、QListWidget深入功能的学者。

    QListWidget应用实例

    Qt中工具控件QListWidget的应用例子,有需要的朋友可下载学习。分享快乐。

    精通qt4编程(源代码)

    于是,我们通过阅读Qt的assistant和examples来学习并使用Qt 4。在逐渐掌握Qt 4的过程中,我们萌发了编写一本关于Qt 4的书来帮助初学者入门的想法。最终,在电子工业出版社博文视点资讯有限公司的大力支持下,我们的...

    精通Qt4编程(第二版)源代码

    于是,我们通过阅读Qt的assistant和examples来学习并使用Qt 4。在逐渐掌握Qt 4的过程中,我们萌发了编写一本关于Qt 4的书来帮助初学者入门的想法。最终,在电子工业出版社博文视点资讯有限公司的大力支持下,我们的...

    Qt开发——资源管理系统源码V1.0.1.zip

    用msvc2015 Vs Qt5.10.1 的Qxml与QListWidget等开发的资源管理系统源码及搭建好的框架,适合Qt学习用和利用框架继续开发该系统,用来开发学习QXml及ListWidget模块及继续开发自用很合适。目前该软件框架版本包括存储...

    PyQt(Python+Qt)学习随笔:枚举类QTreeWidgetItem.ItemType、QListWidgetItem.ItemType的取值及含义

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在Model/View的便利类QTreeWidget、QListWidgetItem中的项类型分别是QTreeWidgetItem、QListWidgetItem,在构造这2个类型项的时候,...

    QListWidget的自定义组件获得自定义词条,并进行传递参数

    我的demo目前是自己制作了一个自定义的QListWidget,然后需要点击item的时候,得到组件中城市的部分(这个可以自己修改),然后我会将这个城市传递给别的页面进行获取天气。一开始我的选择是连接自定义和主窗口,...

    VS2022联合Qt5开发项目(复杂堆栈窗体)

    具体的代码步骤和解析可以看这篇博文(https://blog.csdn.net/weixin_52194015/article/details/134078826),这是我在学习Qt时的练手项目,大家也可以在练习中根据自己的喜好增加新的功能,方法原理在那两篇博文里...

    qt 实现 动态 拖拽垃圾箱

    自实现的一个动态的拖拽垃圾箱,是一个学习拖拽和动画的简易例子;同时也加入了事件监听

Global site tag (gtag.js) - Google Analytics