有没有办法自动调整QTableView最后一列的内容大小



>我的应用程序中有 6 列的表视图。所有列都是交互式的,最后一列也通过函数QTableView::setStretchLastSection进行拉伸。但是,如果我尝试将主窗口的大小从最大大小调整为最小大小(我的应用程序为 1170x686),最后一列将保持拉伸状态。我做了一个解决方法:

void MyTableView::resizeEvent(QResizeEvent* event)
{
    QWidget* widget = parentWidget();
    while (widget != nullptr && widget->parentWidget() != nullptr)
    {
        widget = widget->parentWidget();
    }
    if (widget != nullptr)
    {
        const int width = widget->width();
        const int height = widget->height();
        static const QSize s_minimumWindowSize(1170, 686);
        QAbstractItemModel* currentModel = model();
        if (width <= s_minimumWindowSize.width() && height <= s_minimumWindowSize.height() && currentModel != nullptr)
        {
            setColumnWidth(currentModel->columnCount() - 1, GetMinimumWidthForColumn());
        }
    }
    QTableView::resizeEvent(event);
}

有没有更好的方法来解决这个问题?

检查表格的大小策略。将水平和垂直策略都设置为ignored通常可以为我解决此问题。

最新更新