00 Qt中控件QPushButton讲解

2023-05-16

转载自https://zhuanlan.zhihu.com/p/440257095

前提

按钮分为了四种状态:常态、聚焦、按下、禁用

功能

1:背景颜色值改变

我们可以对四种状态设置一个背景颜色值,也可以根据不同状态设置不同的颜色值。

主要是根据我们实际的开发需求来定的。

情况1:四种状态使用一种背景颜色值

QSS方式:

Background-color:#FF0000;

情况2:每个状态的颜色值不一样

QSS方式

QPushButton{background-color:#FF0000}; //常态
QPushButton:hover{background-color:#00FF00}; //聚焦状态
QPushButton:pressed{background-color:#0000FF}; //按下状态
QPushButton:disabled{background-color:#DDDDDD}; //禁用状态

2:背景图片改变

与上述颜色值更改的方式一致,只是将颜色值变成了图片。

情况1:四态使用一种背景图片

QSS方式

border-image:url(:/QtControl/img/normal.png);

情况2:每个状态的背景图不一致

QSS方式

"QPushButton{border-image:url(:/QtControl/img/normal.png); }"
"QPushButton:hover{border-image:url(:/QtControl/img/hover.png);}"
"QPushButton:pressed{border-image:url(:/QtControl/img/pre.png);}"
"QPushButton:disabled{border-image:url(:/QtControl/img/disab.png);}";

3:文本对齐方式

QPushButton这个控件的对齐方式有点不一样哦~是不可以使用"setAlignment"这个函数进行设置的,只能通"过setStyleSheet"进行QSS风格设置,这一点大家需要记住啦~

按钮中字体的对齐方式:left、right、top、bottom、center

  • 左对齐

QSS:text-align:left;

  • 右对齐

QSS:text-align:right;

  • 居中

QSS:text-align:center;

  • 内边距对齐

情况1:文本左对齐时,内边距设置

QSS:padding-left:10px;

情况2:文本右对齐时,内边距设置

QSS:padding-right:10px;

4:内部显示图片

图片在右侧显示

显示效果,以文本右侧显示图片为例子,如下所示:

QSS方式

QString strStyle = "QPushButton{font-family:Microsoft YaHei; font-size:12px; color:#666666;} "
"QPushButton{background-image:url(:/QtControl/image/2wm_p.png);"
"background-repeat:repeat-no-repeat;" //图片重复方式
	"background-position:right;"
	"background-origin:content;"
	"padding-right:15px;}";

说明:

1:在图片时,为什么使用background-image与2.2中的方式为何不一致?

因为border-image设置背景时,图片是拉伸填充的,在此处不需要。

2:background-repeat说明

该属性定义了图像的平铺模式。背景图像的位置是根据background-position属性设置的。如果未规定background-position属性,图像会被放置在元素的左上角。

描述
repeat默认。背景图像将在垂直方向和水平方向重复
repeat-x背景图像将在水平方向重复。
repeat-y背景图像将在垂直方向重复。
no-repeat背景图像将仅显示一次。
inherit规定应该从父元素继承属性的设置。

3:background-position说明

位置关键字可以按任何顺序出现,只要保证不超过两个关键词。

如果只出现一个关键字,则认为另一个关键字是center。

单一关键字等价的关键字
centercenter center
toptop center 或 center top
bottomBottom center 或 center bottom
rightright center 或 center right
leftleft center 或 center left

4:background-origin 说明

相对于内容框来定位背景图像。

属性值:border(边框)

padding(填充)

context(内容)

图片在顶部显示

QSS方式

QString strStyle = "QPushButton{font-family:Microsoft YaHei; font-size:12px; color:#666666;text-align:bottom;} "
"QPushButton{background-image:url(:/QtControl/image/2wm_p.png);"
"background-repeat:no-repeat;" 
	"background-position:top;"
	"background-origin:content;"
	"padding:10px}";

图片左侧显示

当图片在左侧时,相当于按钮的图标,则使用下面这种方式实现。

ui.btn->setIcon(QIcon(:/QtControl/image/2wm_p.png));

5:文本底部添加下划线

对于这个功能,很多情况下都会用到,前一阵子我也使用到了这个功能,索性分享给大家吧~

首先先看一下展示效果

下划线的长度是整个QPushButton的长度。

QSS的选中效果

sStyle = "QPushButton{ font-size:14px; font-family:Microsoft YaHei UI;color:#1576fc;background: transparent;border-width:2px;border-style:none none solid none;border-color:#1576fc;}";

QSS的未选中效果

sStyle = "QPushButton{ font-size:14px; font-family:Microsoft YaHei UI;color:#999999;background: transparent;border-width:2px;border-style:none none solid none;border-color:#cccccc;}";


总结

目前想到的功能也就这些啦~

如果还有想要实现却没法实现的功能,评论下说明我会更新的哦~

看在我这么辛苦总结的份上,点个赞再走吧~

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

00 Qt中控件QPushButton讲解 的相关文章

  • QTableWidget中添加QComboBox/QPushButton控件并响应控件点击

    QTableWidget是QT程序中常用的显示数据表格的空间 xff0c 里面不仅仅可以添加文字 xff0c 也可以添加控件 xff0c 图片等等 xff0c 此处以添加QCombobox和QPushButton举例 xff0c 点击选择控
  • QT 中 QPushButton 的qss样式background-color无效

    在设计界面为QPushButton设置了样式 或者在QPushButton的上层对象的样式处设置了按钮的样式 解决方法 xff1a 删除设计界面设置的按钮样式 xff0c 可能在不同层 xff0c widget xff0c widget 3
  • QT 设置QPushButton 颜色

    调色板类QPalette QPalette类包含了 Qt窗口不见的颜色组 collor group 1 Active组 该组的颜色用户当前活动的 active 窗口 即具有键盘或鼠标焦点的窗口 2 Inactive组 该组用语其他的窗口 3
  • 00 Qt中控件QPushButton讲解

    转载自https zhuanlan zhihu com p 440257095 前提 按钮分为了四种状态 xff1a 常态 聚焦 按下 禁用 功能 1 xff1a 背景颜色值改变 我们可以对四种状态设置一个背景颜色值 xff0c 也可以根据
  • QT控件提升之QPushButton提升为QMenu

    当一个控件进行提升之后 xff0c 就有了新的功能 xff0c 在原来的一些特性基础上 xff0c 发生一些新的改变 QT控件提升方法 xff1a 1 需要写一个需要提升为某种功能的类 2 打开qt设计师 xff0c 在对应需要提升的控件
  • QT修改QPushButton的背景色和文字颜色

    Qt中QPushButton背景颜色设置方法 不管我设置不是画笔颜色 xff0c 依然不管用 xff0c 一查才知道自己错了 因为在windows中QPushButton的颜色涉及到样式表 xff0c 所以应该设置样式表才可以 xff0c
  • PyQt——按钮类控件QPushButton

    span class token keyword import span sys span class token keyword from span PyQt5 span class token punctuation span QtCo
  • Qt QPushButton按钮用法详解

    文章目录 QPushButton按钮的创建QPushButton按钮的使用QPushButton按钮的信号和槽实例演示QPushButton按钮用法 已剪辑自 http c biancheng net view vip 9654 html
  • QSS之QPushButton 详细介绍

    官方参考资料 span class hljs tag QPushButton span span class hljs rules span class hljs comment 前景色 span span class hljs rule
  • QPushButton的简单使用

    Qt的基本控件接口 QPushButton的简单使用 Dialog Dialog QWidget parent QDialog parent ui new Ui Dialog ui gt setupUi this QPushButton b
  • QT QPushButton点击事件的实现

    最近需要对按钮实现效果 当鼠标按下时按钮有效果1 然后鼠标松开时按钮有效果2 分析 这里没有现成的信号可以使用 需要重载mousePressEvent 及 mouseReleaseEvent 事件函数 在mouseReleaseEvent
  • Python PyQt5(三)添加控件,绑定简单事件处理函数

    coding utf 8 Author BlueSand Email slxxfl000 163 com Web www lzmath cn Blog https blog csdn net weixin 41810846 Date 201
  • (Qt) 从按钮的 QButtonGroup 创建信号?

    我对这整件事是如何运作的感到非常困惑 我有一些按钮 我将其放入这样的组中 MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui MainWindow ui gt
  • 通过信号的函数调用将默认键控参数更改为“False”。为什么?

    当通过信号连接调用函数时 如下所示 mybutton clicked connect myfunction 调用该函数时 其所有参数均设置为 False 即使已设置默认参数 这是预期的行为吗 下面的代码显示了一个简单的示例 对于我的特殊情况
  • 单击菜单标题时连接函数

    我正在尝试找到开放的端口并将它们添加到我的菜单中 现在 我成功地对菜单执行了一个操作 例如 查找端口 并且只有单击它时 它才会连接到获取所有可用端口的函数 不幸的是 这不是我想要的 我想点击菜单title 并获取我的菜单中的所有端口 下面是
  • 设置 Qt QPushButton 弹出菜单的位置(向右)

    我正在为 Qt 按钮小部件编写弹出菜单 每当单击按钮时 就会弹出一个菜单 在按钮下方 默认情况下 弹出菜单位于下方左侧 有没有办法让弹出菜单在按钮下方的右侧弹出 没有设置位置的功能 所以我想知道是否有一些复杂的方法可以做到这一点 这是一些代
  • 如何防止回车键关闭我的 QDialog (Qt 4.8.1)

    我有一个QDialog with a QDialogButtonBox The OK and Cancel按钮处于活动状态 有时 我会根据对话框的状态禁用或隐藏 确定 按钮 看来 无论我做什么 Enter 键总是会激活 确定 按钮 我真的不
  • 单击 QPushButton 时,它会触发两次

    我在一个项目中使用了 PyQt5 并有以下片段 button是一个 QPushButton def on receive self query print receiving query datapackages json loads qu
  • Qt 样式表:无法使用 ID 选择器

    我正在学习使用 Qt 样式表向我的应用程序添加不同的样式 我在网上查看了 Qt 文档 其中说你可以使用名为ID Selector可以将主题应用于某些对象 这就是我实现此功能的方式 QPushButton button color red 但
  • PyQt5按钮lambda变量变成布尔值[重复]

    这个问题在这里已经有答案了 当我运行下面的代码时 它显示如下 为什么 x 不是 x 而是变成布尔值 这种情况仅发生在传递到用 lambda 调用的函数中的第一个参数上 错误的 y home me model some file from P

随机推荐

  • Dapper MySql DateTime 异常

    实体类 字段类型 DateTime xff0c Mysql数据库中字段类型 datetime NULL 使用dapper扩展读取 xff0c 报异常 xff1a Error Parse column Object 原因 xff1a Mysq
  • InfoWindow 和 InfoSymbol 的显示

    既可以为图层设置InfoWindow或InfoSymbol xff0c 也可以单独的设置每个要素Feature或Graphic 当设置为整个图层时 xff0c 是应用到整个FeatureLayer或GraphicLayer中的所有要素 一下
  • 【mmdet3d配置】win11+Debian子系统

    mmdet3d 43 win11 43 Debian子系统 不想安装双系统 xff0c 又馋windows的UI xff0c 还需要linux的生产力 xff0c 毕竟很多代码暂时只支持linux 所以就有了这篇文章 linux子系统 在
  • windows远程连接linux超时断开解决

    1 通过windows的cmd命令远程连接Linux服务器 2 通过指令进入sshd config文件 vim span class token operator span etc span class token operator spa
  • Unable to allocate 129792KB bitmaps for parallel garbage collection for the requested 4153344KB heap

    现象 xff1a Windows 11 执行 mvn spring boot run 出现如下错误 xff1a Unable to allocate 129792KB bitmaps for parallel garbage collect
  • Linux下进程号查看和pid查看端口号

    先使用 lsof i 得到正在运行的进程 xff0c 此时可以看到对应的 pid xff0c 再使用 netstat anp grep pid 就可以查到进程对应的端口 xff0c 还有一个更简单 直接的命令是 netstat ntlp x
  • wsl2打开terminal被卡住,无法进入terminal

    以管理员方式启动cmd xff0c 执行 netsh winsock reset
  • Vim跳转到指定行的三种方法

    vim中有3中方法可以跳转到指定行 xff08 首先按esc进入命令行模式 xff09 xff1a 1 ngg nG xff08 跳转到文件第n行 xff0c 无需回车 xff09 2 n xff08 跳转到文件第n行 xff0c 需要回车
  • docker-compose up --build -d 的作用

    docker compose up build d 根据Dockerfile重新下载需要的镜像并构建容器 xff0c 也就是说这句相当于是 docker compose build no cache 和 docker compose up
  • 使用cat和echo把多行内容写入到文件

    cat gt love txt gt i love you gt i love you so much gt i love you with all my heart gt EOF 注 xff1a 加EOF是为了退出编辑状态 参考这里 ca
  • Agile-bpm工作流

    前端 xff1a 后端 xff1a agile bpm basic Agile bpm basic的部署文档 xff0c 从项目的README md里得知 xff0c 有spring boot版本 xff1a spring boot 版本
  • 最新go语言学习教程

    go语言学习教程 集合了连接go routine go连接redis go连接kafka等示例 xff0c 所有代码均经过实践 xff0c 可以直接使用 GitHub fastbpmn go study go语言的个人学习项目
  • Java 基础实验 找出1000以内的完数

    文章目录 前言一 什么是完数 xff1f 二 实验步骤1 实现思路2 代码如下 总结 前言 通过Eclipse平台实现Java基础实验 一 什么是完数 xff1f 完全数 xff08 Perfect number xff09 xff0c 又
  • 简单介绍下VB中text的passwordChar属性

    在CSDN上献丑一回 xff0c 希望能帮助一些对初学习VB的朋友们 首先我们先来看一个例子 xff0c 我想这个问题就不难理解了 xff01 代码开始 Private Sub Command1 Click If Text2 Text lt
  • 郁闷的周二

    好不容易破天荒的起床早了一回 xff0c 本想趁早把网站的内容更新一遍的 xff0c 谁知道网站又无法正常访问了 xff01 极度郁闷之中 xff01
  • IOS表视图——用IB建

    import 34 ViewController h 34 64 interface ViewController 64 end 64 implementation ViewController void viewDidLoad super
  • 在RHEL7.4上安装ovirt4.2.7所需要的软件包列表

    通过实践在RHEL7 4上安装了oVirt engine和ovirt host xff0c 除了RHEL7 4的光盘yum源外 xff0c 保留了所有下载的rpm文件 列表如下 xff1a abrt 2 1 11 50 el7 centos
  • Debian中文输入法fcitx总结

    Linux下的中文输入法很多 xff0c 有 chinput scim 等 但抱着好用 xff0c 实用 xff0c 快速的原则 xff0c 我推荐使用 fcitx 在 Debian环境下 xff0c 安装非常方便 具体如下 xff1a d
  • tabbarcontroller的tabbar的显示与隐藏

    以导航为控制 项目中一般都会用到 TabBar 这个控件 xff0c 需求是 TabBar在主界面正常显示 xff0c 但Push到下一级界面时则需要隐藏 xff0c Pop回来的时候又需要显示 1 如下代码代码虽然能实现功能 xff0c
  • 00 Qt中控件QPushButton讲解

    转载自https zhuanlan zhihu com p 440257095 前提 按钮分为了四种状态 xff1a 常态 聚焦 按下 禁用 功能 1 xff1a 背景颜色值改变 我们可以对四种状态设置一个背景颜色值 xff0c 也可以根据