Qt风格(QSS)应用之QToolTip

2023-11-01

QToolTip是鼠标悬浮在控件上时出现的提示语,能显示toolTip的控件有QLabel, QPushButton,等Widget的子类,默认的显示是通过setToolTip函数设置提示文字,然后就可以显示了,但是这种显示不怎么美观是默认的样式,其实可以通过CSS设置它的颜色,字体,边框,背景等,具体的属性如下表格式

属性名 解释
color 字体颜色
background-color 背景色
font-size 字体大小
font-family 字体类型
background-image 背景图
padding 边距
border 边框设置
opacity 透明度(这个看要平台是否支持)
border-radius 设置圆角

下面来看具体的代码示例:

void MainWindow::initView()
{
    qDebug() << "font===========" << qApp->font().family();//Microsoft YaHei
    ui->pushButton->setToolTip(QString::fromLocal8Bit("显示Tooltip"));

    ui->pushButton_2->setToolTip(QString::fromLocal8Bit("显示Tooltip2"));
    ui->pushButton_2->setStyleSheet("QToolTip{background-color:#ffffff;color:#ff0000;font-size:12px;}");

    ui->pushButton_3->setToolTip(QString::fromLocal8Bit("显示Tooltip3"));
    ui->pushButton_3->setStyleSheet("QToolTip{border:2px solid rgb(200,0,0);background-color:#00ffff;color:#ff0000;font-size:12px;}");

    ui->pushButton_4->setToolTip(QString::fromLocal8Bit("显示Tooltip4"));
    ui->pushButton_4->setStyleSheet("QToolTip{border:1px solid rgb(200,0,0);background-color:transparent;color:#00ff00;font-size:12px;}");

    ui->pushButton_5->setToolTip(QString::fromLocal8Bit("显示Tooltip5"));
    ui->pushButton_5->setStyleSheet("QToolTip{border:2px solid rgb(200,0,0);border-radius:5px;background-color:#ffffff;color:#ff0000;font:20px \"Microsoft YaHei\";}");

    ui->pushButton_6->setToolTip(QString::fromLocal8Bit("显示Tooltip6"));
    ui->pushButton_6->setStyleSheet("QToolTip{border:0px solid rgb(200,200,0);padding:15px;background-color:#00ffff;opacity:0;color:#ff0000;font-size:20px;}");

    ui->pushButton_7->setToolTip(QString::fromLocal8Bit("显示Tooltip7"));
    ui->pushButton_7->setStyleSheet("QToolTip{border:2px solid darkkhaki;padding:15px;opacity:200;background-image:url(:/woodbackground.png);}");

    ui->pushButton_8->setToolTip(QString::fromLocal8Bit("显示Tooltip8"));
    ui->pushButton_8->setStyleSheet("QToolTip{border:2px solid darkkhaki;padding:15px;opacity:0;background-image:url(:/woodbackground.png);}");
}

运行结构:

上面是鼠标悬浮时显示tip,有时候我们点击按钮时也可弹一个提示语,这个时候我只需要调用QTooltip::showText();

示例代码如下:

void MainWindow::initView()
{

    ui->pushButton_stop->setStyleSheet("QPushButton{background-color:#6A6BA1;color:#FFFFFF;border-style:solid;border-width:1px;border-radius:8px;}"
                                "QPushButton:hover{background-color:#9697E3;color:#FFFFFF;border-style:solid;border-width:1px;border-radius:8px;}"
                                "QPushButton:pressed{background-color:#48496E;color:#FFFFFF;border-style:solid;border-width:1px;border-radius:8px;}"
                                "QToolTip{border:1px solid #999999; background-color: #ffffff; color:#333333; font-size:14px;border-radius:5px;}");
    connect(ui->pushButton_stop, SIGNAL(clicked()), this, SLOT(slotShowTip()));
}


void MainWindow::slotShowTip()
{
    QPoint point = this->mapToGlobal(ui->pushButton_stop->pos()); //坐标转换
    point.setX(point.x() - 20);
    point.setY(point.y() - 50);
    QToolTip::showText(point, QStringLiteral("确定要停止吗"), ui->pushButton_start);
}

运行结果:

 

参考:

https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt风格(QSS)应用之QToolTip 的相关文章

  • 主流ETL工具汇总

    一 kettle 说明 是国外开源ETL工具 支持数据库 FTP 文件 rest接口 hdfs hive等平台的灵敏据进行抽取 转换 传输等操作 Java编写跨平台 C S架构 不支持浏览器模式 特点 易用性 有可视化设计器进行可视化操作
  • Go语言实训二:Go语言基础知识

    第1关 Go语言基本数据类型 任务描述 用 Go 语言写一个程序 把 int 类型强制转化为 rune 类型 并验证原生的 rune 类型和转换后的 rune 类型是否具有可比较性 相关知识 介绍 在 Go 语言中 数据类型用于声明函数和变
  • 调参经验

    1 假设一次训练有10个epoch 可能会出现以下情况 训练好一次模型去测试 测试的准确率为0 92 又去训练一次模型 不是在之前训练模型的基础上 而是单独进行一次训练 模型训练好去测试 测试准确率为0 93或者0 89 如果我改变一个模型
  • JAVA字符串格式化-String.format()和MessageFormat的使用

    String format 常规类型的格式化 String类的format 方法用于创建格式化的字符串以及连接多个字符串对象 熟悉C语言的同学 应该记得C语言的sprintf 方法 两者有类似之处 format 方法有两种重载形式 form
  • TCP&UDP

    TCP 面向连接的服务 可靠的进程到进程的通信协议 因为TCP里面封装了端口号 端口号就意味着一个服务 进程 应用场景 如 文件传输 HTTP应用层协议 UDP 无连接服务 不可靠的传输协议 应用场景 广播 早期的QQ 视频传输等 ACK
  • 2023数模国赛C 题 蔬菜类商品的自动定价与补货决策-完整版创新多思路详解(含代码)

    题目简评 看下来C题是三道题目里简单一些的 考察的点比较综合 偏数据分析 涉及预测模型和运筹优化 线性规划 还设了一问开放型问题 适合新手入门 发挥空间大 题目分析与思路 背景 在生鲜商超中 一般蔬菜类商品的保鲜期都比较短 且品相随销售时间
  • Groovy 的SQL模块

    Groovy的SQL模块提供了对JDBC的抽象 让我们使用JDBC更简单 相关类在groovy sql包下 本文参考自Working with a relational database 一些代码引用了官方文档 需要了解详细信息请参见原文
  • [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web applica...

    1 06 Aug 2019 22 01 22 261 信息 localhost startStop 1 org apache catalina startup HostConfig deployDirectory Deploying web
  • TCP/IP网络江湖——数据链路层的协议与传承(数据链路层中篇:数据链路层的协议与帧)

    0 引言 网络江湖 宛如千年武林 承载着代代传承的文化和传统 在这个广袤的江湖之中 数据链路层犹如武林门派 代代传承着网络通信的精华 这一部分将带领我们深入探讨数据链路层的协议与传承 揭示其在网络江湖中的精彩故事 就如同江湖中的武者需要基本
  • java将list转化为string

    可以使用Java中的join 方法将List转化为String 例如 List
  • 颜水成发了个「简单到令人尴尬」的视觉模型,证明Transformer威力源自其整体架构...

    梦晨 发自 凹非寺量子位 报道 公众号 QbitAI Transformer做视觉取得巨大成功 各大变体频频刷榜 其中谁是最强 早期人们认为是其中的注意力机制贡献最大 对注意力模块做了很多改进 后续研究又发现不用注意力换成Spatial M
  • CyclicBarrier 使用详解

    1 CyclicBarrier 是什么 从字面上的意思可以知道 这个类的中文意思是 循环栅栏 大概的意思就是一个可循环利用的屏障 它的作用就是会让所有线程都等待完成后才会继续下一步行动 举个例子 就像生活中我们会约朋友们到某个餐厅一起吃饭
  • ansible自动化运维工具

    ansible自动化运维工具 ansible定义 ansible特点 架构图 ansible安装 ansible配置 ansible主机清单 etc ansible hosts ansible常用模块使用详解 raw command she
  • Excel常用公式与函数总结(Excel 2010)

    基本说明 在Excel中输入函数时是不区分大小写的 无论是大写还是小写 结束函数编辑时 Excel会自动转化为大写 对于函数中的参数 当参数是文本时 要用双引号引起来 单纯的数字不需要加双引号 除非这个数字是文本性数字 如果数字前面有比较运
  • EasyCode自动生成Mybatis-plus代码,出现报错

    原因 com baomidou mybatisplus extension api包在3 5之后被弃用 导致导入失败 解决办法 将controller java vm中的模版用下面的模版进行替换 定义初始变量 set tableName t
  • 三分屏干部在线

    def ti for i in range 1 browser switch to default content bo browser find element by css selector iframe browser switch
  • c++ 报错cannot declare variable ‘a‘ to be of abstract ty

    报错原因 没有在子类中完成对基类的虚函数的定义 使得子类不能实例化
  • KeyError: ‘Cascade Mask R-CNN‘

    在安装mmdetection之后 我们可能会按照官方文档来验证是否安装成功 而验证的第一步是下载预训练模型 运行命令为 mim download mmdet config yolov3 mobilenetv2 320 300e coco d

随机推荐