gpt4 book ai didi

c++ - qTreeView scrollToBottom() 忽略

转载 作者:太空宇宙 更新时间:2023-11-04 13:41:00 24 4
gpt4 key购买 nike

鲜花盛开!

尝试在 qTreeView(或 QListView)小部件中使用 scrollTo() 时我感到很疯狂。为了让我的问题简单化,我将我的代码简化为一个简单的 scrollToBottom() ,我也无法使用它。这是主窗口代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <iostream>
#include <qfilesystemmodel.h>


MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QFileSystemModel *model = new QFileSystemModel(this);
QModelIndex modelRootIndex = model->setRootPath(QDir::rootPath());
ui->treeView->setModel(model);
ui->treeView->setRootIndex(modelRootIndex);
ui->treeView->scrollToBottom();
if(modelRootIndex.isValid()) std::cout << "validIndex" << std::endl;
}

MainWindow::~MainWindow()
{
delete ui;
}

据我所知一切正常(我在标准输出上得到了“ValidIndex”字符串),但小部件根本没有滚动到底部。

我使用的是桌面 QT5.0.2 msvc2010 32 位。

有什么想法吗?谢谢。大号

最佳答案

QFileSystemModelQFileSystemWatcher 在单独的线程中保持最新。因此,简单地在 TreeView 上设置模型并不能确保在您调用 scrollToBottom 时模型将被完全填充。使用具有小延迟的单次定时器,让模型有时间填充。

QTimer::singleShot(1000, ui->treeView, SLOT(scrollToBottom()));

此外,(我不知道您的应用程序,所以这可能是也可能不是)它可能会让您的用户感到困惑,因为他们需要查看的数据位于无论如何 View 。您可能会考虑是否可以按相反顺序对 View 项进行排序(从而使您需要的数据位于顶部)以避免滚动并可能使使用更直观。

关于c++ - qTreeView scrollToBottom() 忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27624957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com