标签: qtreeview

在QTreeView中更容易找到QModelIndex的(可视)位置

我有兴趣计算一个节点的物理位置,QTreeView但是找不到这样做的方法(除了自己计算它,考虑到鲁棒性,这很麻烦且容易出错QTreeView).

有没有一种标准方法可以找到与a相关的数据的绘制位置QModelIndex(类似于将indexAt()位置映射到a的方式QModelIndex)?

c++ model-view-controller qt qtreeview qmodelindex

9
推荐指数
1
解决办法
3202
查看次数

Python:PyQt QTreeview示例 - 选择

我正在使用Python 2.7和Qt设计器,而且我是MVC的新手:我在Qt中完成了一个View,为我提供了一个目录树列表,以及用于运行的控制器.我的问题是:

给定Qtree视图,如果选择目录,如何获取目录?

在此输入图像描述

代码快照在下面,我怀疑它是SIGNAL(..)虽然我不确定:

class Main(QtGui.QMainWindow):
  plot = pyqtSignal()

  def __init__(self):
    QtGui.QMainWindow.__init__(self)
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)

    # create model
    model = QtGui.QFileSystemModel()
    model.setRootPath( QtCore.QDir.currentPath() )

    # set the model
    self.ui.treeView.setModel(model)

    **QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL('clicked()'), self.test)**

  def test(self):
    print "hello!"
Run Code Online (Sandbox Code Playgroud)

python tree qt qtreeview

9
推荐指数
2
解决办法
3万
查看次数

如何使用QTreeView获取有关所选项目的详细信息?

我正在使用QTreeView和QDirModel这样:

QDirModel * model = new QDirModel;
ui->treeView->setModel(model);
ui->treeView->setSelectionMode(QTreeView::ExtendedSelection);
ui->treeView->setSelectionBehavior(QTreeView::SelectRows);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是,我不知道如何获取有关我选择的文件的详细信息.到目前为止我有这个:

QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes();
Run Code Online (Sandbox Code Playgroud)

但不知道现在要做什么,我想得到每个文件的名称和完整路径.一个例子真的很棒.谢谢.

c++ qt qtreeview

8
推荐指数
1
解决办法
2万
查看次数

PyQt:删除不必要的列

我正在使用QTreeView和QFileSystemModel.它显示大小,类型,修改日期等列,我不需要.如何从视图中删除它们?我removeColumn在模型或视野中找不到任何东西.

python qt qtreeview qfilesystemmodel

8
推荐指数
2
解决办法
2422
查看次数

QTreeView删除所有项目的装饰/展开按钮

我希望我的QTreeView所有项目都能得到扩展.在这种情况下,所有展开按钮/装饰都是不必要的,我想摆脱它们.如何删除所有这些?setRootIsDecorated只会删除第一级的按钮...

qt qtreeview

8
推荐指数
2
解决办法
4484
查看次数

QAbstractItemModel和QTreeView

我需要在QtreeView中显示自己的数据模型的工作示例(c ++).

c++ qt qtreeview qabstractitemmodel

7
推荐指数
1
解决办法
2万
查看次数

绝不会调用QAbstractItemModel data()

我正在尝试创建一个QTreeView并使用自定义模型.我把qDebug()报表在不同的地方,我已经确定,data()永远不会被调用.我该如何解决这个问题?

该模型的代码如下

#include "ModelItemNeural.h"

ModelItemNeural::ModelItemNeural(QObject *parent, NeuralNode *rootNode)
    : QAbstractItemModel(parent)
{
    this->rootNode = 0;
}

QModelIndex ModelItemNeural::index(int row, int column, const QModelIndex &parent) const
{
    // Out of bounds and null rootNode check.
    if (rootNode == 0 || row < 0 || column < 0)
    {
        return QModelIndex();
    }

    NeuralNode* parentNode = nodeFromIndex(parent);
    NeuralNode* childNode = parentNode->getInputs().value(row);

    if (childNode == 0)
    {
        return QModelIndex();
    }

    return createIndex(row, column, childNode);
}

QModelIndex ModelItemNeural::parent(const QModelIndex &child) …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtreeview qabstractitemmodel

7
推荐指数
1
解决办法
4940
查看次数

PyQT - 你如何使QTreeview无法编辑但也可以选择?

我刚刚从wxPython切换到PyQT,我在QTreeview上遇到了一些麻烦.我有一个QTreeview,它将显示分类为可扩展的部分的数据,但是这个TreeView中的数据不应该是可编辑的,但我需要能够让用户选择数据(双击将执行另一个方法).我不确定如何使它只读,但也可以选择.我使用QStandardItemModel和QStandardItem来保存数据.

任何帮助将非常感激.

python pyqt qtreeview qstandarditemmodel qstandarditem

7
推荐指数
1
解决办法
4834
查看次数

QTreeView合并一些单元格

我有一个自定义QAbstractItemModel和自定义树视图。
是否可以合并QTreeView中的某些单元格?

它看起来像这样:

Num | Name      | Qty | .... |
----|-----------|-----|------|
1   | Unit one  |  5  | .... |
1.1 | Sub unit1 |  3  | .... |
1.2 | Very very big string   |
1.3 | Sub unit2 |  2  | .... |
Run Code Online (Sandbox Code Playgroud)

同样,QTreeWidget :: setFirstColumnSpanned()也不是必须的。

c++ model-view-controller qt qtreeview

7
推荐指数
2
解决办法
1734
查看次数

单列 QTreeview 搜索过滤器

我有两个问题:

  1. 我想知道这是否是在单列树视图上进行搜索/过滤的正确方法。我觉得我的很多复制/粘贴可能包含不必要的内容。子类中的代码QSortFilterProxyModel和方法中的代码都search_text_changed需要吗?我觉得不需要正则表达式,因为我将过滤代理设置为忽略大小写。

  2. 我怎样才能做到这一点,以便当用户双击树视图项目时,信号会发出一个字符串列表,其中包含所单击项目的字符串及其递归的所有祖先?例如,如果我双击“Birds”,它将返回['Birds','Animals'];如果我双击“动物”,它只会返回['Animals'].

在此输入图像描述

import os, sys
from PySide import QtCore, QtGui

tags = {
    "Animals": [
        "Birds",
        "Various"
    ],
    "Brick": [
        "Blocks",
        "Special"
    ],
    "Manmade": [
        "Air Conditioners",
        "Audio Equipment"
    ],
    "Food": [
        "Fruit",
        "Grains and Seeds"
    ]
}

class SearchProxyModel(QtGui.QSortFilterProxyModel):
    def __init__(self, parent=None):
        super(SearchProxyModel, self).__init__(parent)
        self.text = ''

    # Recursive search
    def _accept_index(self, idx):
        if idx.isValid():
            text = idx.data(role=QtCore.Qt.DisplayRole).lower()
            condition = text.find(self.text) >= 0

            if condition:
                return True
            for childnum in …
Run Code Online (Sandbox Code Playgroud)

python filtering qtreeview pyside qsortfilterproxymodel

7
推荐指数
1
解决办法
4146
查看次数