一.前言
软件开发过程中,会遇到这样的需求,一个按钮要携带图标和文字,且图标在左,文字在右,以此来增强这个按钮的功能指向,这个样式在移动端还是蛮常见的,最典型就是搜索栏。
二、在Qt中有两种方式可以实现需求
方式一:代码方式
1.核心代码

 ui->pushButton->setIcon(QIcon(":/buttonIcon.png"));ui->pushButton->setLayoutDirection(Qt::LeftToRight);ui->pushButton->setText("左边图标,右边文字");

2.效果

3.关于setLayoutDirection
官方文档是这样的:
This property holds the layout direction for this widget
By default, this property is set to Qt::LeftToRight.
When the layout direction is set on a widget, it will propagate to the widget’s children, but not to a child that is a window and not to a child for which setLayoutDirection() has been explicitly called. Also, child widgets added after setLayoutDirection() has been called for the parent do not inherit the parent’s layout direction.
大概的意思,就是这个函数是设置控件的布局方向,默认是设置从左到右的(因此在代码中,其实我们也可以不用设置,也可以实现效果),当控件设置了这个布局方向之后,他是传递到没有显示调用setLayoutDirection的子控件的,但是不会传递到作为窗口的控件,有点像向下传递而不向上传递;还有一个就是如果父控件先调用setLayoutDirection,后面再添加其他子控件,子控件是不会继承父控件的布局方向的,所以为了严谨,建议还是把setLayoutDirection加在需要设置左图标右文字的控件属性上,免得受其他控件的影响
方式二:样式表
1.核心代码以及备注
核心是样式文件的编写,这里为了简单直接在代码里面写

    // 方式2ui->pushButton->setText("左边图标,右边文字");QStringList qssList;// 根据需要配置qssList.append("height: 35px;");qssList.append("font-size: 14pt");// 图标路径qssList.append("background-image: url(:/buttonIcon.png);");// 固定编写qssList.append("background-repeat: no-repeat;");qssList.append("background-origin: padding;");qssList.append("background-position: left;");qssList.append("text-align:left;");// 这里根据实际去调整参数,因为涉及到图标的大小,这里经过测试合适的为22%,可以用百分比或者像素px实现qssList.append("padding-left:22%;");ui->pushButton->setStyleSheet(qssList.join(";"));

2.效果

三、例子源码

Qt之按钮左边图标右边文字相关推荐

  1. Qt按钮左边图片右边文字

    在Qt中实现按钮的图片在左,文字在右,主要有两种方法,如下: 方法一 : 设置按钮内部布局 ui->pushButton->setIcon(QIcon(":/pic/share. ...

  2. QT 为按钮添加图标并设置透明

    QT 为按钮添加图标并设置透明 qt中自带的控件有时不能满足我们的需求,这时可以自定义一些控件,最简单的是将按钮变成我们想要的图标,在尝试的过程中有一个按钮的阴影问题,我的想法是添加图标后就完全看不到 ...

  3. 如何设置一个按钮 左边方形右边圆形

    如何设置一个按钮 左边方形右边圆形 前言 一.使用步骤 1.创建一个按钮,并设置类为g 2.css样式 总结 前言 前端vue页面将一个普通按钮样式设为一边圆形 一边没有变化 以下是本篇文章正文内容, ...

  4. 给工具栏按钮添加图标和文字

    假设工具栏有两个按钮,为每个按钮添加图标和文字 1.新建一个单文档程序,将准备好的图标资源(32×32)复制到res文件夹. 2.在资源中打开工具栏编辑器,删除(del)原有的位图和多余的按钮(将按钮 ...

  5. Qt|QToolBtton实现三态图标及文字变化

    效果: 第一种方法使用原生QToolButton的stylesheet实现,优点很明显代码量少,也可灵活修改. // 设置样式.背景图,置顶,居中,无伸缩:字体大小:上面空出36px给图片: QStr ...

  6. 弹性盒怎么实现左边图片右边文字_微信图文排版模板如何制作?怎么建一个左边图片右边文字的公众号模板?...

    公众号运营做久了,各式各样的排版样式也见的很多,样式见多了自然也会想着自己制作样式,让公众号排版更符合自己的想法,更有风格特色. 微信公众号模板制作通常有三个途径,专业设计软件制作.图片网站制作以及微 ...

  7. html图片放在文字左侧,CSS如何实现DIV左边图片右边文字 下边LI标签知道

    满意答案 bingo803 推荐于 2017.10.10 采纳率:54%    等级:13 已帮助:10659人 *{margin:0;padding:0;} .loop_div{width:500p ...

  8. 微信小程序实现左边图片右边文字效果

    实现的效果: xml布局文件: <view class="chuxingItem"> <image class="img" src=" ...

  9. html图文混排结构dt,dl,dt,dd实现的图文混排(左边图片右边文字)

    /p> Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ...

最新文章

  1. jq 获取当时时间的到秒_空军飞行员忆战机被鸟撞后的37秒
  2. Glusterfs入门
  3. boost::hana::test::TestRing用法的测试程序
  4. Windows Server 2012 下安装MySQL 5.6 X64位包
  5. 解决 SQLSERVER 2008 无法删除作业
  6. nessus重置密码
  7. 蓝牙调试工具如何使用_使用此有价值的工具改进您的蓝牙项目:第2部分!
  8. django-模型类字段类型
  9. 3种双集群系统方案设计模式详解
  10. TCP/IP(五)传输层之细说TCP的三次握手和四次挥手
  11. 使用MyEclipse快速开发图形化界面
  12. QT 监控串口中文乱码解决
  13. 利用AFD进行播出级的自动幅型比控制
  14. 蒟蒻的网络流24题解题记
  15. win7系统笔记本做无线路由器
  16. 实时操作系统UCOS学习笔记1----UCOSII简介
  17. 罂粟花乄傷:最开心生活细节
  18. 读书 | 每天演好一个情绪稳定的成年人
  19. java面试微信交流群-欢迎你的加入
  20. 如何查看小方侦测云存储_小方智能摄像机和手机怎样连接?

热门文章

  1. 基于ArkUI开发框架,图片马赛克处理的实现
  2. Tracker自动拟合结果错误处理
  3. qt包含头文件时显示fix available
  4. 4个方法,快速提升抖音作品推荐量
  5. CUDA Driver Version is insufficient for CUDA runtime version
  6. Github发布名叫“依赖图”(Dependency Graph)新工具
  7. 不会读代码的程序员,不是好厨师
  8. 渗透测试报告模板_OSCP 考试报告模板(增强版)
  9. 2020年4月份所有文章汇总
  10. matlab终止运行按什么,matlab终止运行命令