【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

雾绡容器
• 阅读 3292

组件合集


BannerLabel 滚动横幅部件

源文件

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

特性
  • 可随机添加图片路径及提示信息集合
  • 可清空图片路径及提示信息集合
  • 可设置图片切换时间
  • 可设置提示信息文字颜色
  • 可设置指示器位置 左边 + 中间 + 右边
  • 可设置鼠标悬停停止播放
  • 可设置组件固定大小(需要与图片尺寸匹配)
  • 图片切换时,可发出切换信号
  • 当前图片被点击时,可发出点击信号
  • 不依赖其它自定义组件,易集成
使用示例
    /* BannerLabel example begin */
    BannerLabel *bannerLabel = new BannerLabel(this);

    bannerLabel->setTextColor(Qt::green);
    bannerLabel->setIndicatorPosition(BannerLabel::IndicatorLeft);
    bannerLabel->setInterval(2000);
    bannerLabel->setHoverStop(true);
    bannerLabel->setFixedSize(800, 400);

    const QList<std::pair<QString, QString>>&& imagepairlst = { std::make_pair("C:/Users/DELL/Desktop/bannerLabel/banner-image/0", "离离原上草!"),                                                                std::make_pair("C:/Users/DELL/Desktop/bannerLabel/banner-image/1", "一岁一枯荣!"),                                                                std::make_pair("C:/Users/DELL/Desktop/bannerLabel/banner-image/2", "野火烧不尽!"),                                                                std::make_pair("C:/Users/DELL/Desktop/bannerLabel/banner-image/3", "春风吹又生!"),                                                                std::make_pair("C:/Users/DELL/Desktop/bannerLabel/banner-image/5", "Banner 横幅组件!"), };
                                                                
    bannerLabel->addImage(imagepairlst);

    connect(bannerLabel, &BannerLabel::imageChange, [=](int index, const QString &imagePath, const QString &tipText){
        qDebug() << "imageChange: " << index << " " << imagePath << " " << tipText;
    });

    connect(bannerLabel, &BannerLabel::imageclicked, [=](int index, const QString &imagePath, const QString &tipText){
        qDebug() << "imageclicked: " << index << " " << imagePath << " " << tipText;
    });
    /* BannerLabel example end */

PopupMessageBox 屏幕右下角信息提示对话框

源文件

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

特性
  • 可设置标题
  • 可设置标题图标
  • 可设置提示文本
  • 可设置提示图片
  • 可设置提示动画
  • 可设置操作按钮是否可见
  • 可设置对话框入场动画时间
  • 可设置对话框停留时间
  • 可随时终止一个对话框
  • 对话框退出时,发送退出信号
  • 确定按钮被点击时,发送确认信息
  • 取消按钮被点击时,发送取消信号
  • 不依赖其它自定义组件,易集成
使用示例
// 上浮
QPointer<PopupMessageBox> p = PopupMessageBox::createInstance();

p->setTitle("这是一个测试工程提示");
p->setTitleIcon(QPixmap(":/popumessagebox/popupmessagebox/home.png"));
p->setButtonVisible(true);
p->setText("可加载图片/文字/动画\n 按钮可隐藏");

p->start(PopupMessageBox::Animation_Up, 1000, 800);
// 透明度
QPointer<PopupMessageBox> p = PopupMessageBox::createInstance();

p->setTitle("这是一个测试工程提示");
p->setTitleIcon(QPixmap(":/popumessagebox/popupmessagebox/home.png"));
p>setIcon400x270_400x215(QPixmap("C:/Users/DELL/Desktop/popupmessagebox/icon.jpg"));
p->setButtonVisible(false);

p->start(PopupMessageBox::Animation_Opacity, 1000, 800);
// 下坠
QPointer<PopupMessageBox> p = PopupMessageBox::createInstance();

p->setTitle("这是一个测试工程提示");
p->setTitleIcon(QPixmap(":/popumessagebox/popupmessagebox/home.png"));
p->setButtonVisible(false);
p->setMovie400x270_400x215("C:/Users/DELL/Desktop/popupmessagebox/icon.gif");
p->start(PopupMessageBox::Animation_Drop, 2000, 800);
// 抖动
QPointer<PopupMessageBox> p = PopupMessageBox::createInstance();

p->setTitle("这是一个测试工程提示");
p->setTitleIcon(QPixmap(":/popumessagebox/popupmessagebox/home.png"));
p->setButtonVisible(false);
p->setText("作业写完了吗!!!");
p->setTextColor(Qt::red);
p->setButtonVisible(true);

connect(p, &PopupMessageBox::quit, [=](){
    qDebug() << "quit";
});
connect(p, &PopupMessageBox::accepted, [=](){
    qDebug() << "accepted";
});
connect(p, &PopupMessageBox::rejected, [=](){
    qDebug() << "rejected";
});

p->start(PopupMessageBox::Animation_Shark, -1, 800);

SimpleMessageBox 简易的对话框

源文件

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

特性
  • 消息提示对话框
  • 询问提示对框框
  • 错误提示对话框
  • 不依赖其它自定义组件,易集成
使用示例
qDebug() << SimpleMessageBox::infomationMessageBox("这是一个测试,今天心情好不啦,啦啦啦,嘿嘿嘿");
qDebug() << SimpleMessageBox::errorMessageBox("祝你平安喜乐,万事胜意");
qDebug() << SimpleMessageBox::questionMessageBox("bug修复了吗?");

IconHelper 字体图标辅助类

源文件

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

特性
  • 可设置 Label 字体图标
  • 可设置 Button 字体图标
  • 可设置 ListWidgetItem 字体图标
  • 不依赖其它自定义组件,易集成
  • 不依赖其它自定义组件,易集成
使用示例
QListWidget *pListWidget = new QListWidget(this);

pListWidget->setMovement(QListView::Snap);
pListWidget->setViewMode(QListView::IconMode);
pListWidget->setResizeMode(QListView::Adjust);
pListWidget->setSpacing(10);

for (int index=0; index<500; ++index)
{
    QListWidgetItem *item = new QListWidgetItem(pListWidget);
    
    IconHelper::setIcon(item, QChar(index + 0xf031), 16);   // 注意这里
    
    pListWidget->addItem(item);
}

QHBoxLayout *pLayout = new QHBoxLayout;
pLayout->addWidget(pListWidget);
setLayout(pLayout);

CommonHelper 公共辅助类

源文件

【Qt】 自定义组件_滚动横幅&弹窗&对话框&字体图标等

特性
  • 设置皮肤样式
  • 判断是否是IP地址
  • 模糊延时
  • 窗体剧中显示
  • 设置为开机启动
  • 设置为应用重启
使用示例
QPushButton *pBtn = new QPushButton("重启", this);

connect(pBtn, &QPushButton::clicked, [=](){
    CommonHelper::reboot(); // 注意这里
});

QVBoxLayout *pLayout = new QVBoxLayout;
pLayout->addWidget(pBtn);
setLayout(pLayout);
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
AndroidStudio封装SDK的那些事
<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这