QPushbutton的hover悬空状态失效

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

此情况很有可能在设置了伪状态之后,又在程序执行顺序上后加了按钮的背景色样式,比如:

我们先给一个按钮加一个悬浮时的伪状态:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->btnTest,&QPushButton::clicked,this,&MainWindow::on_Test_clicked);
    ui->pushButton_3->setStyleSheet("QPushButton:hover {background-color: #3377FF;}");

}

运行后的初始状态:

QPushbutton的hover悬空状态失效

 把鼠标放上去之后:

QPushbutton的hover悬空状态失效

 伪状态正常显示,没什么问题;

若我们在悬浮按钮伪状态之后再给按钮设置一个背景色:ui->pushButton_3->setStyleSheet("background-color: #000000;");

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->btnTest,&QPushButton::clicked,this,&MainWindow::on_Test_clicked);
    ui->pushButton_3->setStyleSheet("QPushButton:hover {background-color: #3377FF;}");
    ui->pushButton_3->setStyleSheet("background-color: #000000;");
}

新的运行结果:

QPushbutton的hover悬空状态失效

将鼠标放上去的状态依旧是黑色,悬浮的伪状态丢失;

 QPushbutton的hover悬空状态失效

若我们把代码整体修改一下,即把样式写在一个setStyleSheet里,则效果都不会消失,即无悬浮的时候是黑色,有悬浮的时候是蓝色;

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->btnTest,&QPushButton::clicked,this,&MainWindow::on_Test_clicked);
    ui->pushButton_3->setStyleSheet("QPushButton {background-color: #000000;}"
                                    "QPushButton:hover {background-color: #3377FF;}");

}

注意:

1.在setStyleSheet中同一个“{}”里的不同属性要用“;”隔开

ui->pushButton_3->setStyleSheet("background-color: #000000;border-radius: 4px 4px 4px 4px;");

等价于
ui->pushButton_3->setStyleSheet("QPushButton {background-color: #000000;border-radius: 4px 4px 4px 4px;};");
所以background-color与border-radius中间使用了“;”来隔开。

2.{}与{}之间不用写“;”,否则会被第一个“;”截断,下面的按钮样式:黑色圆角无悬浮色文章来源地址https://www.toymoban.com/news/detail-502728.html

ui->pushButton_3->setStyleSheet("QPushButton {background-color: #000000;border-radius: 4px 4px 4px 4px;};QPushButton:hover {background-color: #3377FF;}");

到了这里,关于QPushbutton的hover悬空状态失效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Mysql行锁失效情况分析

    数据库版本:使用Mysql8.0.32作为测试版本,InnoDB引擎。 本文阐述Mysql行锁失效升级为表的场景。 使用远程终端打开两个数据库服务器(Linux)窗口,使用如下命令登录: 回车,输入数据库密码. 测试数据库为: test 关闭自动提交 测试数据表为: 其中id是主键。 插入两条id分别为

    2024年02月02日
    浏览(44)
  • 详解MySQL索引失效的几种情况

    MySQL索引是提高查询效率的重要手段。索引失效会导致查询效率下降,甚至全表扫描,影响数据库性能。以下是可能导致MySQL索引失效的情况: 当where语句中使用 or 操作符并且 or 两边的条件涉及到至少两个字段时,MySQL无法使用索引,会转向全表扫描。因此,应尽量避免使用

    2024年02月01日
    浏览(47)
  • spring中事务失效的情况(常见的5种)

    1.多线程调用 从上面的例子中,我们可以看到事务方法add中,调用了事务方法doOtherThing,但是事务方法doOtherThing是在另外一个线程中调用的。 这样会导致两个方法不在同一个线程中,获取到的数据库连接不一样,从而是两个不同的事务。如果想doOtherThing方法中抛了异常,ad

    2024年02月13日
    浏览(37)
  • 面试官:讲讲MySql索引失效的几种情况

    拓展:Alibaba《Java开发手册》 【强制】页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。 注意: 当数据库中的数据的索引列的 NULL值达到比较高的比例的时候 ,即使在IS NOT NULL 的情况下 MySQL的查询优化器会选择使用索引, 此时type的值是range(范围查询) 测试

    2024年02月11日
    浏览(39)
  • Linux SSH失效的几种情况以及排查方法

    公司有个项目是用三台Linux服务器的,在第一台服务器上使用shell脚本同时部署至三台服务器 突然最近有个生产环境SSH不好用了,经过仔细排查才得以解决 基本上排查完这几种情况就能发现问题了

    2024年02月12日
    浏览(47)
  • 【vue项目部署CSS失效】VUE部署后css样式加载无效和失效多种情况解决方案

    【写在前面】vue3在vscode运行正常、build后在IDEA运行正常,但是当部署在服务器上运行发现样式加载不出来,下面我们针对这些情况进行复现与解决。 困扰我好久,当即百度原因,百度清一色下面三种情况: 1、nginx配置文件的问题 2、控制台样式404,文件没找到【文件路径错

    2023年04月09日
    浏览(43)
  • Mysql进阶优化篇02——索引失效的10种情况及原理

    前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 🍌 专栏简介:mysql基础、进阶,主要讲解mysql数据库sql刷题、进阶知识,包括索引、数据库调优、分库分表等 🌰 文章简介:本文将介绍索引失效的10种情况及原理,绝对不需要死记硬背,建议收

    2024年02月02日
    浏览(43)
  • Vue3-04-reactive() 响应式失效的三种情况

    属性作为参数案例 整个对象作为参数

    2024年02月05日
    浏览(51)
  • Mac 苹果电脑关闭代理sip万能方法(M1M2适用)针对csrutil disable失效情况

    1、关闭电脑(不要选择重新启动,直接关机) 2、长按开机键,不要松掉,出现声音也不要松,直到出现HD盘和选项设置后松开,点击选项,点击继续 3.进入用户界面,输入密码,等待跳转下一个界面 4.上排小字,选择实用工具,终端 5.在终端输入【csrutil disable】(回车),

    2024年04月14日
    浏览(83)
  • 【软件】无联网情况下安装Win11 / 华为电脑更换Win11系统后触摸屏、声卡失效物理解决方案

    1)通过管理员身份打开命令提示符。 2)输入命令:dism /online /export-driver /destination:\\\"D:备份驱动\\\" 即可将电脑驱动备份到 “ D盘备份驱动 ” 中。 注意这里 空格不要敲错了 ,同时要保证D盘里有备份驱动这个文件夹, 或者其他命名也都行。 备份好的驱动如下: 3)使用方式

    2024年02月11日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包