Qt:上图标下文字的按钮

这篇具有很好参考价值的文章主要介绍了Qt:上图标下文字的按钮。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法一:QPushButton用qss自定义设置上图标下文字的样式

    QPushButton#pushButton_close{
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 4px;
    padding-right: 4px;
    border: none;
    font: bold 16px;
    color: #0B68D0;
    text-align:bottom;
    border-radius: 6px;
    background-color: #FFFFFF;
    background-image: url(:/images/close.png);
    background-position: top;
    background-origin: content;
    background-repeat: no-repeat;

方法二:使用QToolButton设置Qt::ToolButtonTextUnderIcon

ui->toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

qss样式设置:

QToolButton#toolButton {
qproperty-icon:url(:/images/close.png);
qproperty-iconSize: 40px 40px;
border: 1px solid transparent;
border-radius: 15px;
background-color: transparent;
font-size: 16px;
color:#0B68D0;
border-radius: 6px;
background-color: #FFFFFF;
}

方法三:重写QPushButton类自定义上图标下文字的按钮控件类

void MyPushButton::drawIcon(QPainter *painter)
{
   const QRect btnRect = QRect(10, 10, 80, 80);
   const QSize iconSize = QSize(40, 40);

   QPixmap pix(":/images/close.png");
   painter->save();
   painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);


   painter->drawPixmap(QRect((btnRect.width()  - iconSize.width() ) / 2,
                             6,
                             iconSize.width(),
                             iconSize.height()),
                             pix);
   painter->restore();
}

void MyPushButton::drawText(QPainter *painter)
{
    const QRect btnRect = QRect(10, 10, 80, 80);
    const QSize iconSize = QSize(40, 40);

    painter->save();
    painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);

    QFont font = this->font();

    font.setPixelSize(16);

    painter->setFont(font);

    painter->drawText(QRect( 0,
                             (6 + iconSize.height()),
                             btnRect.width(),
                             (btnRect.height() - (6 + iconSize.height()))),
                             Qt::AlignCenter,
                             "关闭");

    painter->restore();
}

void MyPushButton::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QStyleOption opt;
    opt.init(this);
    style()->drawPrimitive(QStyle::PE_Widget,&opt, &painter, this);
    QPushButton::paintEvent(event);
    drawIcon(&painter);
    drawText(&painter);
}

参考效果:
Qt:上图标下文字的按钮,Qt——新手小白进阶学习之路,qt,开发语言,ui,c++文章来源地址https://www.toymoban.com/news/detail-729198.html

到了这里,关于Qt:上图标下文字的按钮的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • react + antDesign新手进阶学习指南

    基础知识点 1、react中的状态管理。         和vue中的状态管理有些相似,只不过react中是依托于mobx的。         举例写法: 2、react中的变量声明方式。         在react中使用变量有两种方式,一种是利用store中的变量,动态改变数据,一种是利用useState。         举例

    2024年02月11日
    浏览(51)
  • QT学习07:五种按钮控件

    文章首发于我的个人博客:欢迎大佬们来逛逛 完整Qt学习项目地址:源码地址 是所有按钮类的祖先。 QAbstractButton的信号 : void clicked (bool checked = false) : 是否选中按钮 void pressed (): 点击按钮 void released (): 释放按钮 void toggled (bool checked): 检测 是否被选中 最常用的按钮控

    2024年02月09日
    浏览(45)
  • QT学习 控件(一):五种按钮类

    QAbstractButton的信号 : void clicked(bool checked = false) : 是否选中按钮 void pressed(): 点击按钮 void released(): 释放按钮 void toggled(bool checked): 切换按钮的状态 最常用的按钮控件之一。 构造函数: 设置图标,文本信息,父窗口 常用操作: 序号 函数描述 1 int void setAutoDefault(bool) 设

    2024年02月02日
    浏览(53)
  • [Qt学习笔记]Halcon窗口界面上显示文字的字体尺寸、样式修改

    养成良好的查资料习惯,可以实现事半功倍。 在Halcon12中,有set_font和set_display_font两个算子,其中set_display_font是本地函数形式,所以最终的实现算子为set_font. 按照不同的系统环境下,使用方法略有不同: 不同的系统下使用的方法不同,原本以为比较简单,直接按照文档的

    2024年03月20日
    浏览(55)
  • C++学习之路(七)C++ 实现简单的Qt界面(消息弹框、按钮点击事件监听)- 示例代码拆分讲解

    这个示例创建了一个主窗口,其中包含两个按钮。第一个按钮点击时会显示一个简单的消息框,第二个按钮点击时会执行一个特定的操作(在这个例子中,仅打印一条调试信息)。 功能描述: 创建窗口和布局: 使用 QWidget 和 QVBoxLayout 创建主窗口并设置垂直布局,将按钮放置

    2024年02月04日
    浏览(68)
  • Sora 使用教程,新手小白可用

    参考文章:Sora 使用教程,OpenAI 的文生视频模型 为了在激烈的行业竞争中保持领先地位,OpenAI 在 2024 年 2 月 15 日发布了其革命性的文本至视频转换模型——Sora。这个先进的工具能够将文本描述转化为最长一分钟的动人视频,标志着 OpenAI 在日益增长的人工智能市场中继续保

    2024年02月22日
    浏览(43)
  • 新手小白的AI训练指南

    Python是一种非常流行的编程语言,也是许多开发人员用于开发和训练人工智能(AI)算法的首选语言。Python的简单性和易于使用的语法,使得开发人员可以更快地构建AI应用程序,而不必花费太多精力学习新技能。 如果你也想开始学习如何利用Python构建AI应用程序,那么本篇入

    2024年02月07日
    浏览(57)
  • 新手如何选择 视频配音软件(文字转语音)

    目录 1.先说结论:完全免费的 剪映配音 可以满足大部分需求 2.五款流行的配音软件优缺点 3.为什么剪映会免费 4.剪映配音:极简教程 4.1 下载、安装剪映: 4.2 新建项目#x

    2024年02月10日
    浏览(34)
  • 适合新手小白练习的pygame实战项目!

    PyGame是一个用于制作2D游戏的Python库。它提供了许多功能,如游戏开发、音频处理和图形渲染等。PyGame库可用于制作各种类型的游戏,从简单的休闲游戏到复杂的冒险游戏。 跨平台:pygame可以在Windows、Mac和Linux等操作系统上运行。 开源:pygame是一个开源库,开发者可以免费使

    2024年01月25日
    浏览(53)
  • 新手小白需要了解的 Go 基础细节杂谈

    Golang 基础知识一遍过 👈 今日记录一下 学习 golang 这门语言遇到的一些比较特殊的细节,供大家参考。        所以,在我们输出内容的时候,可以包含很多的非 ASCII 码字符。实际上,Go 是天生支持 UTF-8 的,任何字符都可以直接输出,甚至可以使用 UTF-8 中的任何字符作为标

    2023年04月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包