• [编程心得]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";
    }
    就完成了舍得预期的效果,每个按钮点中后高亮,直至另一个按钮被点击;鼠标即使在非按钮区点击,高亮效果仍然保留.

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

  • 相关阅读:
    机器学习之支持向量机
    C++ 踩的坑
    C++ 虚析构函数
    Linux 离线安装软件
    samba配置问题
    字符串相关函数总结
    printf(),类型修饰符
    getopt()和getopt_long()用法
    关于GDB使用
    关于C语言宏定义 使用do{ xxxx }while()
  • 原文地址:https://www.cnblogs.com/emagic/p/2500984.html
Copyright © 2020-2023  润新知