标签: qtreewidget

使用绝对文件路径中的层次结构填充QTreeWidget

我有一个文件,其中列出了绝对文件路径,每行1个.列出的文件是有序的,因此例如/Documents/dir中的所有文件将在文件中彼此之后列出.

我想要做的是将所有这些文件QTreeWidget放在一个漂亮的分层结构中,就像普通的文件系统一样.我如何从我的绝对路径文件中做到这一点?

这就是我对此进行编码的程度:

QFile file(FILENAME_ENCRYPTED);
QString line;
QDir dir;

QTreeWidgetItem *item;
if (file.open(QIODevice::ReadOnly)) {
    QTextStream stream( &file );
    do {
        line = stream.readLine();
        if (!line.isNull()) {
            dir = QDir(line);
            item = new QTreeWidgetItem();
            item->setText(0, dir.dirName());
            this->ui->treeWidget->addTopLevelItem(item);
        }
    } while (!line.isNull());
}
file.close();
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它只列出了彼此之后的所有文件名.我想我必须做一些递归函数,但递归不是我最好的朋友,我更喜欢迭代!有人能给我一个正确的方向吗?:)

recursion qt qtreewidget

4
推荐指数
1
解决办法
7573
查看次数

重绘 QTreeWidget

我有一个基于 QTreeWidget 的简单类。在某些情况下(当其中一列的值更新时),我需要重新绘制它。我有一个函数,当我需要更新我的小部件时调用:

void TreeWidget::updated()
{
    /* some actions with cells */

    /* here need to repaint widget */
    this->update();
    /* also I'm tried this->repaint(); */
}
Run Code Online (Sandbox Code Playgroud)

但行this->update();(或this->repaint();) 没有给出任何结果。仅当我单击小部件时才重新绘制它。

那么我该如何重新绘制我的小部件呢?

c++ qt qtreewidget qt5

4
推荐指数
1
解决办法
1053
查看次数

QTreeWidget激活项目信号

我需要在QTreeWidget中的项目激活时执行一些操作,但是下面的代码不会给我预期的结果:

class MyWidget(QTreeWidget):

    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)
        self.connect(self, SIGNAL("activated(QModelIndex)"), self.editCell)


    def editCell(self, index):
        print index
Run Code Online (Sandbox Code Playgroud)

要么

 class MyWidget(QTreeWidget):

    def __init__(self, parent=None):
         super(MyWidget, self).__init__(parent)
         self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem, int)"),
                      self.editCell)


     def editCell(self, item, column=0):
         print item
Run Code Online (Sandbox Code Playgroud)

我做错了什么或如何以正确的方式激活项目激活?

谢谢,塞尔

qt pyqt qtreewidget

3
推荐指数
1
解决办法
3348
查看次数

单击项目视图的空白区域时清除选择

我用 制作了一个树结构QTreeWidget,效果很好。但我有一个问题。通常,对于树结构,如果我想取消选择所有,我单击树小部件的空白区域。但QTreeWidget似乎不支持(或者我不知道如何)。

子分类或其他方法可以解决问题吗?确定点击空白区域似乎是解决方案的关键,但我找不到信号或任何东西。

python pyqt selection qtreewidget qabstractitemview

3
推荐指数
1
解决办法
2815
查看次数

PyQT QTreeWidget迭代

我在QTreeWidget中有两列,一列代表网址列表,第二列代表结果.我已在第一列中加载了URL列表,现在我想迭代此列表,并在迭代期间更改第二列中的文本.怎么做到这一点?

python pyqt qtreewidget

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

是否可以在QTreeWidget中设置多个项目?

setCurrentItem只设置一个项目.我没有看到任何方法设置多个以编程方式选择的项目,但也许我忽略了什么?

当然,我的树窗口小部件配置为启用多个选择.

请注意,我正在使用QTreeWidget,而不是QTreeView.

c++ qt qtreewidget

3
推荐指数
1
解决办法
3132
查看次数

当 QTreeWidgetItem 悬停时显示工具提示,而不为每个项目调用 setTooltip()

我想显示QTreeWidgetItem悬停的工具提示。但是,在我的情况下,获取工具提示并不是一个非常快的过程,因此我不想调用setTooltip()每个项目。我想根据某些事件或信号按需执行此操作。最简单的方法是什么?

qt tooltip qtreewidget qtreewidgetitem

3
推荐指数
1
解决办法
4053
查看次数

发出 QTreeWidgetItem 切换复选框的信号

如何检查复选框是选中还是未选中?(在 QTreeWidget 中)展示了如何获取 qtreewidget 项上复选框的状态。使用该方法,通过树中 itemClicked 的信号,我可以查询是否选中了所选项目。但是,我需要跟踪这个项目,看看它以前是否被检查过。

是否有一种方法可以知道 QTreeWidgetItem(可能与父项处于不同级别)具有切换的复选框,而无需为其创建子类?

请注意,是否有特定原因未将切换方法附加到 QT 中的 QTreeWidgetItem?

python qt pyqt qtreewidget pyside

3
推荐指数
1
解决办法
3310
查看次数

如何在QTreeWidget中选择一个项目?

我正在尝试创建一个功能,QTreeView如果没有选择任何项目,它将选择 中的最后一个项目。我不知道如何在程序中选择一个项目。到目前为止我已经尝试过这个,但它不起作用。

if (selectedItemList.length() == 0) // no items selected
    {
        QItemSelectionModel *selection = new QItemSelectionModel(treeWidget->model());
        QModelIndex index = treeWidget->model()->index(treeWidget->model()->rowCount() - 1,
                                                       0, QModelIndex());
        selection->select(index, QItemSelectionModel::Select);
        treeWidget->setSelectionModel(selection);
        return;
    }
Run Code Online (Sandbox Code Playgroud)

treeWidget是一个QTreeWidget对象,selectedItemList是其中选定项目的列表。我将不胜感激所有的帮助。

c++ qt qtreewidget

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

Qt 在 QTreeWidget 之间拖放

在我的 QT 应用程序中,我有两个 QTreeWidget A 和 B。

我想为这两种行为重写拖放功能:

  • 从 A 到 A 移动所有孩子的物品。
  • 从 B 到 A 与所有孩子一起复制项目。

我认为在 dropEvent 函数中我有 event.source() 作为获取源。

但是如何使用标志更改功能以进行移动或动态复制?

有例子吗?

谢谢

python pyqt qtreewidget pyqt4 pyqt5

3
推荐指数
1
解决办法
2256
查看次数