免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4340 | 回复: 1
打印 上一主题 下一主题

Qt学习之路(39): QListWidget [复制链接]

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-22 10:15 |只看该作者 |倒序浏览
  第一个要说的是QListWidget。这个类为我们展示一个List列表的视图。下面还是先看代码:
  listwidget.h
#ifndef LISTWIDGET_H
#define LISTWIDGET_H
#include 
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 
#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学习之路(41): QTableWidget
                        
                         
  • Qt学习之路(40): QTreeWidget
                        
                         
  • Qt学习之路(38): model-view架构
                        
                         
  • Qt学习之路(37): Qt容器类之关联存储容器
                        
                         
  • Qt学习之路(36): Qt容器类之遍历器和隐式数据共享
                        
                         
  • Qt学习之路(35): Qt容器类之顺序存储容器
                        
                         
  • Qt学习之路(34): 国际化(下)
                        
                         
  • Qt学习之路(33): 国际化(上)
                        
                         
  • Qt学习之路(32): 一个简易画板的实现(Graphics View)
                        
                         
  • Qt学习之路(31): 一个简易画板的实现(QWidget)
                        
                                   


本文来自ChinaUnix文档频道,如果查看原文请点:http://doc.chinaunix.net/CPP/201001/318450.shtml

论坛徽章:
0
2 [报告]
发表于 2013-08-26 10:36 |只看该作者
求助:现在listwidget已经显示列表,但是我每次只能选中一行,如何实现按住ctrl选中多行,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP