QTreeView 小问题

原创 2012年03月30日 15:55:09

使用如下代码:

connect(ui->treeView,SIGNAL(doubleClicked(const QModelIndex & index)),model,SLOT(itemSelected(const QModelIndex & index)));

按照文档应该没有问题,可是报错如下

Object::connect: No such signal QTreeView::doubleClicked(const QModelIndex & index) in...

后来到网上找到一篇文章,
http://qt4-x11.sourcearchive.com/documentation/4.1.2/classQTreeWidget_bff7ec30b95f987290aca04f4817ce07.html


QTreeWidget::QTreeWidget ( QWidget *  parent = 0  )  [explicit]

Constructs a tree widget with the given parent.

Definition at line 1798 of file qtreewidget.cpp.

References QAbstractItemView::activated()QAbstractItemView::clicked()QTreeView::collapsed()QObject::connect()QAbstractItemView::currentChanged(),QTreeView::dataChanged()QAbstractItemView::doubleClicked()QAbstractItemView::entered()QTreeView::expanded()QTreeView::header(),itemSelectionChanged()QAbstractItemView::model()QAbstractItemView::pressed()QAbstractItemView::selectionChanged(),QAbstractItemView::selectionModel()QHeaderView::setClickable(), and QTreeView::setModel().

    : QTreeView(*new QTreeWidgetPrivate(), parent)
{
    QTreeView::setModel(new QTreeModel(0, this));
    // view signals
    connect(this, SIGNAL(pressed(QModelIndex)), SLOT(emitItemPressed(QModelIndex)));
    connect(this, SIGNAL(clicked(QModelIndex)), SLOT(emitItemClicked(QModelIndex)));
    connect(this, SIGNAL(doubleClicked(QModelIndex)), SLOT(emitItemDoubleClicked(QModelIndex)));
    connect(this, SIGNAL(activated(QModelIndex)), SLOT(emitItemActivated(QModelIndex)));
    connect(this, SIGNAL(entered(QModelIndex)), SLOT(emitItemEntered(QModelIndex)));
    connect(this, SIGNAL(expanded(QModelIndex)), SLOT(emitItemExpanded(QModelIndex)));
    connect(this, SIGNAL(collapsed(QModelIndex)), SLOT(emitItemCollapsed(QModelIndex)));
    // selection signals
    connect(selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
            this, SLOT(emitCurrentItemChanged(QModelIndex,QModelIndex)));
    connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
            this, SIGNAL(itemSelectionChanged()));
    // model signals
    connect(model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)),
            this, SLOT(emitItemChanged(QModelIndex)));

    header()->setClickable(false);
}


改成

connect(ui->treeView,SIGNAL(doubleClicked(QModelIndex)),model,SLOT(ReadItem()));


void ReadItem(const QModelIndex & index = QModelIndex());
就OK了。

相关文章推荐

QTreeView和scrollbar窗口自适应

默认QTreeView的滚动条设置是Qt::ScrollBarAsNeeded.也就是默认值。不修改的话是根据需要显示滚动条的。 我在QTreeView里面添加了item item里面有文本...

Qt控件精讲二:单元视图

得到

QTreeView

Qt Model/View 学习笔记 (一) Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的 功能...

QTableView中添加QToolTip

主题已经很明显了,我们直接代码见: 1. setMouseTracking(true);设置QTableView可以随时接收鼠标的移动时间。 2. connect(this, SIGNAL(ent...

Qt浅谈之二十二Qt样式表

一、简介       不断总结好的样式表,美化自己的界面(在实际工作中会不断的更新)。 二、详解 1、加载样式表文件 [html] view plain cop...

QT5 QTreeview显示问题

QT5 QTreeview显示问题 昨天写了一个treewidget,怎么也不在mainwidow中显示。 原因:没有将QTreeWidget添加到mainwidow中。 解决方法: 将QTreeWi...

Qt树形控件QTreeView使用2——复选框的设置

通过QStandardItem和QStandardItemModel可以很简单方便的给QTreeView添加节点,但是,许多树形控件都需要树的节点需要一个复选框(checkBox),网上许多资料都是通...
  • czyt1988
  • czyt1988
  • 2014年02月13日 20:24
  • 14810

QT QTreeView单击双击事件,获取被单击的整行数据

//初始化表头POSCollect::POSCollect(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) { ...
  • limuyun
  • limuyun
  • 2011年08月16日 17:56
  • 10335

QTreeView处理大量数据

如何使QTreeView快速显示1000万条数据,并且内存占用量少呢?这个问题困扰我很久,在网上找了好多相关资料,都没有找到合理的解决方案,今天在这里把我的解决方案提供给朋友们,供大家相互学习。 我...

QTreeView处理大量数据(使用1000万条数据,每次都只是部分刷新)

如何使QTreeView快速显示1000万条数据,并且内存占用量少呢?这个问题困扰我很久,在网上找了好多相关资料,都没有找到合理的解决方案,今天在这里把我的解决方案提供给朋友们,供大家相互学习。 我开...
  • gxc1222
  • gxc1222
  • 2016年11月04日 15:24
  • 546
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QTreeView 小问题
举报原因:
原因补充:

(最多只允许输入30个字)