QT 主窗口 添加滚动条

Posted 小哈龙

tags:

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

一.描述

我的程序布局是这样的,主窗口继承自QMainWindows,主窗口中包含一个Widget,Widget下面包含其它界面元素,这个Widget作为继承自QMainWindows的CentralWidget,QMainWindows类型的窗口中还包含默认标题栏和状态栏。我是在主窗口之中添加了一个QScrollArea,然后将Widget放入滚动条区域中,然后在主窗口的resizeEvent事件响应中检测主窗口的变化,实时修改滚动条区域的大小和放置在滚动条区域中Widget的大小,达到了需要的效果。

二.实现步骤

1.在主界面初始化时创建滚动条(QScrollArea类)

//以主界面为父窗口创建滚动条
QScrollArea *pScroll=new QScrollArea(this);

//将包含所有UI信息的Widget放进滚动条区域
pScroll->setWidget(ui.centralWidget);

2.在主窗口的resizeEvent事件响应中实时改变窗口大小

Void MainFram::resizeEvent(QResizeEvent *event)

    if(pScroll)
    
        /*设置滚动条区域大小时,需要减去状态栏那部分的高度(实际高度并非是状态栏的高度,
          本处使用4倍的状态栏高度,可根据实际显示效果调整)否则会覆盖状态栏的显示。
          此处53就是标题栏与任务栏的高度,是centralWidget在整个界面中相对于主界面左上角坐标
          的y值*/
        pScroll->setGeometry(0,53,width(),height()-4*ui.statusBar->height());
        ui.centralWidget->setMinimumSize(width(),height()-4*ui.statusBar->height());
    

3.显示效果

 

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

QT 主窗口 添加滚动条

vc++如何为窗口添加滚动条?

jpanel 中滚动条添加

QT MainWindow 滚动条

QT滚动条的问题?

eclipse主窗口左右滚动条