码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Qt 消息小弹窗


    背景:

    Qt程序中,经常要使用弹窗来显示一些报警或提示信息,需要人机互动的直接选择模态弹窗就可以,但是有些只是提醒,并不需要阻塞程序运行的消息提醒,使用小弹窗再合适不过了,类似效果就是手机顶部的气泡弹窗。       


    思路:

    Qt官方并没有提供这么一个类,一些开源组件中是有的,但是可能存在一些不兼容的情况,比如消息的设定方面,或者使用时会遇到一些莫名其妙的bug,那就自己写一个简单的,日后需要美化或复杂功能时再完善。


    实现:

    不使用designer,直接代码即可。

    .h

    1. #include
    2. class CustomSnakeBar : public QWidget {
    3. Q_OBJECT
    4. public:
    5. explicit CustomSnakeBar( QWidget *parent = nullptr );
    6. void showMessage( const QString &message, int duration = 3000 );
    7. private slots:
    8. void hide();
    9. private:
    10. QTimer *timer;
    11. };

    解决方案:

    .cpp

    1. #include "customsnakebar.h"
    2. #include <QHBoxLayout>
    3. #include <QLabel>
    4. #include <QTimer>
    5. CustomSnakeBar::CustomSnakeBar( QWidget *parent )
    6. : QWidget( parent ) {
    7. setWindowFlags( Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint );
    8. setAttribute( Qt::WA_TranslucentBackground );
    9. setStyleSheet( " background-color: #FFA54F;font:22px;"
    10. "border-radius:5px;" );
    11. QHBoxLayout *layout = new QHBoxLayout( this );
    12. QLabel * messageLabel = new QLabel( this );
    13. layout->addWidget( messageLabel );
    14. timer = new QTimer( this );
    15. connect( timer, &QTimer::timeout, this, &CustomSnakeBar::hide );
    16. }
    17. void CustomSnakeBar::showMessage( const QString &message, int duration ) {
    18. QLabel *messageLabel = findChild<QLabel *>();
    19. messageLabel->setText( message );
    20. adjustSize();
    21. move( parentWidget()->x() + parentWidget()->width() / 2 - width() / 2, 0 );
    22. show();
    23. timer->start( duration );
    24. }
    25. void CustomSnakeBar::hide() {
    26. timer->stop();
    27. close();
    28. }

    使用的话,在需要的地方直接showMessage(“XXX”)就可以了。

  • 相关阅读:
    多路查找树
    2023年亚太杯APMCM数学建模大赛ABC题辅导及组队
    QT编码规范
    滑动平均窗口的定义,优点,缺点,以及目前的应用!!
    简单个人静态HTML网页设计作品——广西北海家乡旅游景点 10页 DIV布局个人介绍网页模板代码 DW个人网站制作成品 web网页制作与实现
    mkv文件怎样转成mp4
    Perl爬虫程序的框架
    园区写字楼都在用的物业管理系统
    Foxit PDF SDK Windows 9.1 Crack
    高教社杯数模竞赛特辑论文篇-2023年C题:基于历史数据的蔬菜类商品定价与补货决策模型(附获奖论文及R语言和Python代码实现)(下)
  • 原文地址:https://blog.csdn.net/baidu_33879812/article/details/132965913
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号