【Qt一骚操作】Qt 中 QScrollBar 相关设置

 背景:让滚动区域中的内容的左右随着窗口自适应,上下内容超出屏幕,出现滚动。

(1)setWidgetResizable(true)

当滚动区域的widgetResizable 属性为False时,在Designer中或应用界面手工调整滚动区域部件的大小时,内容部署层不会跟随调整,但可以通过应用代码进行调整,具体调整方法请见下面介绍。

当滚动区域的widgetResizable 属性为True时,在Designer中或应用界面手工调整滚动区域部件的大小时,内容部署层会跟随调整。但验证widgetResizable 为True时,此时通过应用代码进行调整调整滚动区域部件的大小没有任何效果。

滚动区域的widgetResizable属性缺省为False时,可以通过方法widgetResizable()和setWidgetResizable(bool resizable)来访问widgetResizable属性。

(2)setFrameShape设置控件窗体类型

Qt的控件属性设置既可以在Qt设计器中设置,也可以在代码中设置,还以用qss语法修饰,下面介绍如何修改控件的窗体类型,在Qt设计器中有一项frameShape, 继承于QFrame的窗体控件可以修改该属性达到不同的效果,例如QTableView, QTreeView等。 可以设置默认的窗体类型,例如有边框,无边框,当你觉得默认的类型不好看时,可以自己修改。

img

在代码中也可以设置,类型用宏Shape表示

enum Shape {
        NoFrame  = 0, // no frame
        Box = 0x0001, // rectangular box
        Panel = 0x0002, // rectangular panel
        WinPanel = 0x0003, // rectangular panel (Windows)
        HLine = 0x0004, // horizontal line
        VLine = 0x0005, // vertical line
        StyledPanel = 0x0006 // rectangular panel depending on the GUI style
    };

可以根据各种需求动态设置不同的窗体类型 

    scrollArea->setFrameShape(QFrame::Shape::NoFrame);

(3)setHorizontalScrollBarPolicy() 水平/垂直滑动条 及显示/不显示 设置

 setHorizontalScrollBarPolicy()  //设置水平滚动条   
 // 此属性保存水平滚动条的策略
 // 默认策略是Qt::ScrollBarasNeed (当内容太大而无法容纳时显示滚动条,否则不显示滚动条。这是默认设置。)
 setVerticalScrollBarPolicy()  //设置垂直滚动条

其中参数可设置为 ScrollBarAlwaysOffScrollBarAlwaysOn 两种 

ScrollBarAlwaysOff 不显示滚动条 ScrollBarAlwaysOn 显示滚动条

(4)设置滑动条区域背景颜色为透明

    QPalette pa = scrollArea->palette();
    pa.setBrush(QPalette::Window, Qt::transparent); // 利用QPalette 改变控件 画刷颜色的值 
    scrollArea->setPalette(pa);

QPalette类相当于对话框或控件的调色板,它管理着控件或窗体的所有颜色信息,每个窗体或控件都包含一个QPalette对象,在显示时按照它的QPalette对象中对各部分各状态下的颜色的描述来进行绘制。

具体QPalette使用可以参考Qt: 调色板QPalette类用法详解(附实例、源码)_好儿郎~志在四方-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monster_H777

我直说吧:你的奖励我的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值