QTreeView如何根据情况去隐藏和显示滚动条?用C++表示
时间: 2023-07-15 15:15:23 浏览: 392
QTreeView可以使用setVerticalScrollBarPolicy和setHorizontalScrollBarPolicy方法来设置垂直和水平滚动条的显示策略。
以下是一个示例代码,当树的高度小于等于父窗口高度时,隐藏垂直滚动条;当树的宽度小于等于父窗口宽度时,隐藏水平滚动条:
```c++
#include <QTreeView>
#include <QScrollBar>
void setScrollBarPolicy(QTreeView *treeView)
{
int treeWidth = treeView->header()->length();
int treeHeight = treeView->sizeHintForRow(0) * treeView->model()->rowCount();
if (treeWidth <= treeView->width()) {
treeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
} else {
treeView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
}
if (treeHeight <= treeView->height()) {
treeView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
} else {
treeView->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
}
}
```
调用setScrollBarPolicy函数,传入QTreeView对象即可设置其滚动条显示策略。
阅读全文