QT滚动条的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT滚动条的问题?相关的知识,希望对你有一定的参考价值。

m_scrollBar = new QScrollBar(Qt::Vertical ,this);

m_hscrollBar = new QScrollBar(Qt::Horizontal,this);

我创建了两个滚动条,一个垂直一个水平,我的滚动条是建立在winmain的父窗口中即的this.
但在this中间我还有很多继承类widget的子窗口,我托动滚动条时,会移动这些窗口,可是问题出来了,当我移动跟滚动条位置一样时,之些子窗口会遮住我的滚动条,如何让滚动条在其上方呢?
还有个问题,如何让滚动条的值都处理最底处,使每次增加窗口时我都都可以看到最下方的内容

第一个问题:
如果你的滚动条以及其他的窗口都继承自同一个父类,你可以使用
void QWidget::raise () [slot]
将窗体置于最顶层。即在每次加入了新的窗体之后,做下面的操作:
m_scrollBar->raise();
m_hscrollBar->raise();

第二个问题:
我不知道你的意思是不是在每次加入新的窗体之后,都让滚动条自动跳到最底处。
首先你需要知道你新添加窗体之后,你所有的子窗口的总高度totalHeight。
然后重新设置垂直滚动条的range,再设置滚动条的值;与下面的操作类似
//设置滚动条范围
m_scrollBar->setMinimum(0);
m_scrollBar->setMaximum(totalHeight);
//设置滚动条的值
m_scrollBar->setValue(totalHeight);

至于行不行,我还没试过,你可以尝试下下。-_-!
参考技术A 设置子窗体的高度使其不超过可用区域从而不覆盖滚动条

以上是关于QT滚动条的问题?的主要内容,如果未能解决你的问题,请参考以下文章

Qt - QTableView 中的正常垂直滚动条句柄行为

Qt 如何获取滚动窗体中鼠标点击的坐标

怎样设置Panel的滚动条的位置

QT内存数据大,懒加载向有滚动条的文本写入数据

如何制作带有滚动条的 pyqt 选项卡式界面?

带有自定义滚动条的 QML Listview