zoukankan      html  css  js  c++  java
  • [编程心得]PyQt中让按钮保持按下状态

    近日舍得在开发SuperMemo转换精灵体验版的时候遇到了一个问题,舍得需要左侧一个竖排的工具栏,工具栏中的按钮点下后高亮为蓝色,而且点击后一直保持这种高亮状态.直到另一个按钮按下,把它替换掉为止,就象下面这个效果:

    SNAG-0043

    在实际使用的时候发现了问题:当鼠标在主窗口的其它位置点击的时候,这个蓝色高亮状态就消失了,舍得尝试了很多种方法,什么信号槽啊,事件啊啥的,一直找不到一个妥善的解决方案,这几乎已经成为舍得心头的一根刺了。

    直到今天,在度娘的帮助下,找到了一篇文章《Qt保持状态的Button》,直觉告诉我这个可以解决,马上动手测试,终于把这根刺给干掉了。

    下面是解决的方案:

    在按钮中应用下面的函数:

            self.scriptBtn.setCheckable(True)
            self.scriptBtn.setAutoExclusive(True)

    像舍得上面这幅图中总共5个按钮,需要一一设置。

    然后在QSS样式表中设置:

    QPushButton::checked,QToolButton::checked{
        background: #3C79F2;
        border-color: #11505C;
        font-weight: bold;
        font-family:"Microsoft YaHei";
    }
    就完成了舍得预期的效果,每个按钮点中后高亮,直至另一个按钮被点击;鼠标即使在非按钮区点击,高亮效果仍然保留.

    本文版权归舍得英语魔法学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
    作者:
    舍得
    首发:
    舍得@学习力博客

  • 相关阅读:
    mybatis集成spring
    静态代码块-普通代码块-构造代码块(好多图)
    Mybatis generator(复制粘贴完成)
    委派模式和适配器模式
    mysq--索引模块
    谈谈TCP的四次挥手
    说说TCP的三次握手
    网络基础知识
    java的IO机制
    std::bind接口与实现
  • 原文地址:https://www.cnblogs.com/emagic/p/2500984.html
Copyright © 2011-2022 走看看