如何使 QTreeView 对象调整大小以匹配主窗口?

问题描述 投票:0回答:1

我正在使用 QTreeView 来显示信息,我希望它占据主窗口的整个客户区域(减去其菜单、工具栏和状态栏的区域)。当主窗口调整大小时,QTreeView 也应该调整大小。

我的 MainWindow 类(从 QMainWindow 派生)实现 resizeEvent() 如下:

void MainWindow::resizeEvent( QResizeEvent * event )
{
    List->resize( event->size().width(), event->size().height() - statusBar()->size().height() );
    QMainWindow::resizeEvent( event );
}

List是一个在MainWindow类的构造函数中初始化的QTreeView指针:

    List = ui->centralwidget->findChild<QTreeView*>( "ElementView" );

我没有看到 QTreeView 的任何大小调整。我也尝试过,没有调整状态栏的高度。

我还尝试为centralwidget而不是QTreeView调用resize(),以及为QTreeView和centralwidget调用它,但几乎没有任何变化。我说“几乎”是因为改变的一件事是,当主窗口调整大小时,最初出现的 QTreeView 垂直滚动条(因为有超过一个充满信息的屏幕)将消失,即使它仍然是需要。

resize qtreeview qmainwindow
1个回答
0
投票

QMainWindow 中的 QTreeView 的大小调整似乎没有按预期运行。确保为您的中央小部件正确设置布局管理系统。您可能会考虑使用布局(例如,QVBoxLayout 或 QHBoxLayout)来管理中央小部件中 QTreeView 的放置和大小调整。这将允许它在调整主窗口大小时自动调整,而不需要在 resizeEvent 函数中显式调整大小调用。,.

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.