在QScrollArea中的QVBoxLayout中滚动QTableView

时间:2015-02-18 13:37:57

标签: c++ qt qtableview qscrollarea qvboxlayout

我遇到了QTableView小部件的问题: 我需要使用标题水平滚动整个小部件,但标准滚动仅滚动内容,但不滚动标题。

然后我尝试像这样添加QScrollArea(这全部在QDockWidget中):

class matrix : public QScrollArea {
};

在构造函数中:

QVBoxLayout* layout = new QVBoxLayout(this);

tableView = new QTableView(this);
tableView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
layout->addWidget(tableView);

this->setLayout(layout);

但它无法正常工作:滚动条不会出现。

(对不起,如果我违反了一些规则 - 这是我的第一个问题,对不起我的英语不好)

1 个答案:

答案 0 :(得分:0)

您可以删除布局并将QTableView直接设置为视口。

tableView = new QTableView;
setWidget(tableView);
setWidgetResizable(true);
tableView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);