qt之QScrollBar的信号不触发

本文介绍如何通过自定义QScrollBar类实现统一的滚动条样式,并探讨在Qt中使用自定义滚动条时遇到的问题及解决方法。文章还讨论了如何正确地连接信号和槽以监听滚动条值的变化。

事情的起因是这样的,因为软件上有多份表格,都需要自定义样式的拖动条。索性我就创建一个类,继承QScrollBar,然后设置这个类的样式,这样当我需要使用的时候,直接使用这个类就行。但是这个也存在风险。
比如我设置QScrollBar是这样的

myscrollbar *bar=new myscrollbar(this);
QTableview *view=new QTableview(this);
view->setVerticalScrollBar(bar);

当我需要获取到拖动条的值是否改变,也就是拖动的时候。
我是这样写的

connect(view->verticalScrollBar(), &QScrollBar::valueChanged,
            this, &Widget::setValue);

这个信号槽,本身是没有什么问题的。但是当我打印值的时候,一直不显示,我纳闷了,这啥情况,起初以为是不是没有加入qobject宏的问题,但是后面调查没有问题。我有查看是否信号槽的参数不一致导致,调查之后也没问题。我自定义一个信号之后,连接connect之后,发现值正常显示。

解决方案。

突然我想到我是创建的一个myscrollbar这个类,我直接在这个类里面,打印value值,看是否有改变。果然,这次值就能正常打印了。
所以我自定义一个信号,当myscrollbar的值改变了,就发送这个信号,然后在view中定义接收的函数。这样就能看到改变的值是多少了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

加油小杜(接qt定制功能,单模块开发等)

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值