10. QT控件:显示类控件

1. QLabel

        QLabel可以用来显示文本和图片,核心属性如下:

设置伙伴:

        通过QLabel文本中携带“&字符”的方式,为文本设置快捷键。可以通过”alt+字符“的方式来触发快捷键,即触发QLabel通过设置buddy属性绑定的伙伴。

2. QLCDNumber

        QLCDNumber是一个专门用来显示数字的控件,类似于老式计算器的效果

核心属性:

        结合QTimer,我们就可以实现一个简单的倒计时效果:

2.1 Qt界面修改注意事项

(1)不能在构造函数中,通过循环去修改lcdNumber的数值来实现,因为这会导致构建无法执行完毕,界面是不会正常显示的。

(2)在主线程中另起一个线程+sleep的方式同样不能实现倒计时效果,因为Qt 中规定, 任何对于 GUI 上内容的操作, 必须在 主线程 中完成.。像 Widget 构造函数,以及 connect 连接的 slot 函数, 都是在主线程中调用的,而我们自己创建的线程则不是。

        当我们自己的线程中尝试对界⾯元素进⾏修改时,Qt 程序往往会直接崩溃。

        这样的约定主要是因为GUI中的状态往往是牵一发动全身的,修改一个地方,就需要同步的对其他内容进行调整。
        比如调整了某个元素的尺寸,就可能影响到内部的文字位置,或者其他元素的位置。这里一连串的修改,都是需要按照一定的顺序来完成的。
        由于多线程执行的顺序无法保障,因此Qt从根本上禁止了其他线程修改GUI状态,避免后续的一系列问题。

3. QProgressBar(进度条)

        QProgressBar表示一个进度条:

核心属性:

        在实际开发中, 进度条的取值, 往往是根据当前任务的实际进度来进⾏设置的。
        比如需要读取⼀个很⼤的文件,就可以获取⽂件的总的大小,和当前读取完毕的大小, 来设置进度条的比例。
        由于上⾯我们介绍了 Qt 禁⽌在其他线程修改界⾯, 因此进度条的更新往往也是需要搭配定时器来完成。通过定时器周期触发信号,主线程调⽤对应的 slot 函数.。再在 slot 函数中对当前的任务进度进行计算,并更新进度条的界面效果。

4. Calendar Widge(日历)

        QCalendarWidget表示一个日历:

核心属性:
重要信号:
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hey小孩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值