本文主要总结获取Qt中获取树形控件QTreeView选中行内容,具体如下所述。
1.1核心函数
要获取QTreeView选中行内容,只需要两行代码搞定,一个是绑定点击选中行信号和槽函数connect(...),另一个是在槽函数中添加函数
QTreeView::model->itemData().values(
QModelIndex
)[0].toString
,如下所示:
treeView = new QTreeView();
connect(treeView,SIGNAL(pressed(QModelIndex)),this,SLOT(slot_treeView_pressed(QModelIndex)));
void QWidget::slot_treeView_pressed(QModelIndex modeIndex)
treeView->resizeColumnToContents(modeIndex.row());
QString selectedRowTxt = treeView->model()->itemData(modeIndex).values()[0].toString();
qDebug()<<"result=="<<selectedRowTxt;
参考内容:
https://bbs.csdn.net/topics/370107068(参考:获取选中行内容)
本文主要总结获取Qt中获取树形控件QTreeView选中行内容,具体如下所述。1.1核心函数要获取QTreeView选中行内容,只需要两行代码搞定,一个是绑定点击选中行信号和槽函数connect(...),另一个是在槽函数中添加函数QTreeView::model->itemData().values(QModelIndex)[0].toString,如下所示:treeView...
个人感觉QTreeView有些地方的使用没有MFC的CListCtrl方便(比如在不响应单击信号的情况下,获取选中行的数据(单行和多行)),也许因为我是新手吧。
一、获取单行选中的数据
QModelIndex selected = ui.treeView->currentIndex(); //选中的行
selected = selected.sibling(selected.row(),...
在使用QTreeView展示数据的时候,有些数据是在动态变化的,
这时候也需要动态刷新界面,一般直接更新model即可。
但是存在一个问题:之前的选中状态会丢失。
本文讨论在更新数据时如何处理选中状态。
2,两种情况
情况一:更新数据后,需选中同样内容的行。
比如:之前有3行,每行内容为a/b/c,选中了第1行a。现在更新后有5行,x/y/a/b/c,更新后要求仍然选中a,即第3行。
适用情况:软件其他地方与QTreeView里的选中内容有对应关系。所以这个选中行的具体内容不能变,不然无法对应。
首先,要讲一下QT中item、model、view的关系。item是一条数据项,类似表格中的一行,model是数据模型,类似一张表,view则是将这个model这张表显示出来的外在表现。以demo中的simpletreemodel为例,在这个程序中,一个用TreeItem、TreeModel两个自定义类,并且TreeModel继承了QAbstractItemModel。在构造TreeModel时,TreeItem的对象作为结点,被依次加入model的树中,其中最重要的一个是QModelIndex类型的参数i
专栏:使用PyQt开发图形界面Python应用
老猿Python博客地址
QTreeWidget的itemAt方法通过视口内的坐标点获取对应坐标位置的项,相关调用方法如下:
QTreeWidgetItem itemAt( QPoint p)
QTreeWidgetItem itemAt(int x, int y)
通过该方法可以获取到视口上对应坐标所在的项,如果对应坐标位置无项则返回None。
以下代码输出树型部件视口范围内的所有项首列文本:
def showAllVisibleItem(self):
height = self.t
//绑定表格选中行摁下触发事件
connect(addedDeviceTable,SIGNAL(pressed(QModelIndex)),this,SLOT(slot_pressedItem_tableView(QModelIndex)));
Qt是一种流行的跨平台C++应用程序框架,在GUI开发方面非常出色。Qt包含大量的控件,其中一个是树形控件QTreeView。这个控件允许用户显示带有树形视图的数据模型,它是QAbstractItemView的派生类之一。
QTreeView控件具有以下特点:
1. 显示数据模型 - QTreeView控件显示控件绑定的数据模型。用户可以打开和关闭节点以显示或隐藏子节点。
2. 树的构建 - 树的层次结构是通过节点之间的父子关系来定义的。最上面的节点称为根节点,其余的为子节点。
3. 定制化 - QTreeView控件可以被用户定制。用户可以通过设置控件的颜色、字体、大小和对齐方式等来将控件表现为自己想要的样子。
4. 功能强大 - QTreeView控件有很多内置的功能,包括可排序、可过滤、可编辑等等。它也允许用户通过自定义delegate,来实现额外的交互行为。
下面是一些使用QTreeView控件的示例:
1. 创建一个QTreeView控件:
QTreeView *treeView = new QTreeView(parent);
2. 设置它的数据模型:
QStandardItemModel *model = new QStandardItemModel(parent);
treeView->setModel(model);
3. 填充数据模型:
QStandardItem *rootItem = model->invisibleRootItem();
QStandardItem *item1 = new QStandardItem("Item 1");
QStandardItem *item2 = new QStandardItem("Item 2");
rootItem->appendRow(item1);
rootItem->appendRow(item2);
4. 显示控件:
treeView->show();
QTreeView控件是一个非常强大的控件,可以用于各种情况下。它可以轻松地显示大量的数据,并让用户轻松地翻阅它们。在GUI开发中,QTreeView控件是一个非常有用的控件。