QT中对于QPushButton样式的调整

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

前言

前段时间在调软件的样式,学到了些新的东西,也碰到了些问题,这里做一下记录。

这篇博客主要实现的目标就如标题所示。


1.QPushButton

1.1 新建项目导入资源

随便建一个项目,建一个资源包,导入一个资源图片。

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

1.2 添加Push Button并定义样式

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton
qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

这样我们想要的基本元素就有了,文字和按钮图标。


1.3 调整样式

因为我下载的图片元素比较大,所以我这里把图标拉大后进行调整。

这里假设需求是在250px*250px大小的按钮下进行样式调整。
qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton
我们可以看到这个背景图其实就像贴砖一样,一直贴。边上有些重复的。拉大后尤其明显。
qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

这时候需要用到参数background-repeat,我们指向要一个图标,所以参数设置为no-repeat

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

在遇到这个的时候,更多的情况是不知道有什么参数可以设置,设置的值有哪些?这才是最大的问题。

多找一下帮助文档!

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

此时我们图片的位置在一个非常奇怪的位置,其实它是从左上角开始存放的。但是我们现在想让图片在中间,所以需要调整图片的位置。

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton
接下来是文字,简单的就是文字放在按钮的最下边。

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

正常的话,好像这样就可以看了哈?但是其实我们正常做好看的UI,文字就要贴着这个按钮的图片。
这时候其实就是边距的调整了。
qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

好像到这就实现了我们需要的效果了。
但是这只是我们学习的时候简单的调整样式,具体项目需求的时候,还是存在很大差异。


1.4 实际需求情况

这个小节就写一下,项目可能存在的情况。

比如我们在软件UI设计的时候,按钮就是就250px*250px这么大。这么设计的原因是用来布局占位,但是在实际的UI中,如果我们的图标也设计的和这个按钮的大小一样大的话,UI的整体就不协调。

这就有了新的需求:我按钮要占位,为了布局。但是UI要精小,为了美观协调。

出于上述的考虑,我们这里需要用到margin配置参数。

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

但是这样改了之后,我们的文字和这个图标的位置就错了。
所以这里就又是调整样式表。
这里我改了背景图标的位置,这个不是固定的,是根据需要灵活修改的。
qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

background-image: url(:/059_设置.png);
background-repeat:no-repeat;
background-position:bottom;

text-align:bottom;
padding-bottom:20px;
margin:40px 40px 40px 40px;/*上右下左*/

1.5 背景色和边框

对于按钮,我们可能不仅仅需要按钮的图标,可能还需要按钮的背景色和软件UI的底色协调同时在按钮的不同状态(选中和按下等情况)有对应不同的效果。

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton


2. 一些概念理解

2.1 图片

我们在添加资源的时候出现三个选项
qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

这里具体解释一下:
background-image:背景图片。这表示按钮最底层的背景的图片,它上面还可以有图片以及边框等。
border-image:边框图片。边框除了上面写到的定义颜色方式,还可以自定义图片。如果我们的边框颜色就是刚才我们设置的那个图片,那么其实它本质上不能称之为边框。所以在某些边距调整上存在不生效的问题。同时它也会覆盖背景色。
image:图片。这个就是在背景上面添加一个图片。

上面三个举个例子来说就是,一个按钮作为一个画布,那么background-color就是在画布上面印花,border-image就是在画布边上印边框,但是这个边框有可能是个图片,这就导致可能是给画布罩了一个罩子;最后一个image就是在画布上面贴花,画布颜色的改变不影响这个贴花,贴的花始终在画布上面。

2.2 边距

刚才对于边距的调整其实遇到了两变量控制参数:
padding:内边距。
margin:外边距。
这么讲又抽象起来了,不太理解。

举个例子:刚才讲到一个占位的概念。250px*250px。如果我不设置这个外边距margin,那么这个按钮不仅占位是250px,本身的大小也是250px。我们可以对按钮内部调整的大小也是250px。如果设置了外边距,这意味着,按钮占位的整体大小不变,但是显示出来的给我们自己操作样式的大小相对于外面的占位边框有一定的边距,这就是外边距。

再说这个内边距,我们的可以操作的这个控件样式其实就是内部样式了,那么内部样式里面可以控制的范围和内部边框之间也可以设置边距。相当于在可布置的样式中,保证布置样式的边框和底色等不变,改变在这个画布上面的可布置范围。

qt添加按钮图片,Qt学习笔记,qt,qss,QPushButton

这里我图片名字是中文的,编译过不了,所以我后面改成了英文名,但是之前的图又截了,图片没有更换,这里要注意图片名称问题!。

总结

这篇博客主要对QPushButton的样式调整以及自己对一些样式概念的理解,其他的按钮控件也可以参考这个。
对于样式真的没什么统一的说法,不同需求,不同人的调法都不一样,需要自己去琢磨。这个比较费时间,但是确实好看啊。


澄澈i
用简单的语言记录自己走过的技术路
文章来源地址https://www.toymoban.com/news/detail-860406.html

到了这里,关于QT中对于QPushButton样式的调整的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Qt通过QSS设置QPushButton的样式

    为了美化界面,有时候需要修改QPushButton的样式,让一个QPushButton上面既要显示图标,又要显示文字内容 起初我的做法是重写QPushButton,这样做可以实现,但是有几个问题 实现比较繁琐 每次使用UI编辑器设计界面的时候,对每一个QPushButton都要做一次提升 为了解决上面的问题

    2024年02月13日
    浏览(47)
  • qt按钮样式

    1、qt种按钮样式设置,显示效果如上图所示。 该方法优势就是不需要插入的方式,全部由qss实现。 2、qss代码: 3、以上代码使用,有个地方需要注意,那就是圆角设置不能大于高度的一半值,否则圆角将无效。 比如: 这种情况下圆角将无效! 4、如果需要软件种所有按钮全

    2024年02月15日
    浏览(43)
  • 【QT】QT 按钮保持按下时的样式

    按钮设计样式 效果展示 但是这样设置按钮的样式只是在鼠标操作下会显示,当鼠标移出后,样式就消失了,这样这几个按钮又都回到白色情况下,无法让用户知道刚刚点击的是显示哪个窗口。 如何将按钮按下后保持press样式下的样式 1、将所有按钮的如下的两个状态均选中

    2024年02月11日
    浏览(42)
  • qt设置tablewidget颜色、添加选择框、添加按钮和进度条

    添加选择框 在代码中设置tablewidget的样式表 设置表格,添加选择框 cellClicked事件响应,当点击表格项,对复选框进行选中和取消选择 添加进度条和按钮 设置表格 建立按钮和处理函数的信号槽连接,让按钮点击,进度条移动 槽函数和进度条控件 项目下载 https://download.csdn.n

    2024年02月11日
    浏览(57)
  • qt学习:模仿qq界面+添加资源+无边框界面+修改样式

    目录 一,创建登录ui界面类 LoginWidget 二,添加图片资源 三,通过样式的方法将图片设置成圆圈的背景 四,新建登录后的ui界面  MWindow  简陋的就可以,因为只为了学习,可以自己补充 五,新建三个嵌套ui界面类,ChatWidget聊天界面   FriendWiidget好友界面   CollectWidget收藏界面

    2024年01月23日
    浏览(42)
  • Qt图片编辑 - 在直线添加文字

    在绘制一条直线时,比如说在直线中间输出文字,如下图所示 本质上不难,定位到位置,然后drawText就可以了 难就难在 文字要跟随线的斜率,例如    还有,文字最好保证在线的“上方” 首先是角度问题 这个角度跟线Line与X轴夹角是一致的,因此,只要有线两端坐标就可以

    2024年02月15日
    浏览(48)
  • QT添加使用图片与UI资源

    1.1 添加新文件 1.2 添加QT - QT Resources File 【UI资源文件】 1.3 命名资源包名称 并 添加到项目文件 1.4 .pro 文件发生变化 += art.qrc 1.5 点击qrc文件,添加现有文件 - 添加进去的图片文件可以进行正常引用。 1.6 修改样式表,正常添加图片即可 2.1 添加新文件 2.2 添加 QT Designer Form 设计

    2024年01月17日
    浏览(42)
  • Qt 之 QPushButton,信号与槽机制

    当我们开发基于Qt框架的图形用户界面(GUI)应用程序时,经常需要在界面上添加按钮来实现用户交互。Qt提供了一个名为 QPushButton 的类作为按钮控件的实现。QPushButton是Qt中的标准按钮类,旨在简化按钮的创建和使用。 头文件 :#include QPushButton QPushButton 用于 接受用户点击事

    2024年02月12日
    浏览(48)
  • Qt——QPushButton控件的常见属性、方法和信号

    一、QPushButton控件常见属性 二、QPushButton控件常见方法 三、QPushButton控件常见信号 1. text: 描述:按钮上显示的文本。 用法: 2. setStyleSheet 描述:用于设置控件的样式表 用法: 3. icon: 描述:按钮上显示的图标。 用法: 4. resize: 描述:重置按钮大小。 用法: 5. move: 描述:移动

    2024年02月10日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包