苏宇117 2024-09-03 10:39 采纳率: 100%
浏览 6
已结题

QT Qss优化RadioButton

img


QFrame#frame_top QRadioButton:indicator
{
    width: 0px;
}

QFrame#frame_top QRadioButton
{
    height: 60%;
    width: 100px;
    background-color: #404040;
    border-top: 0px;
    border-left: 1px double #808080;
    border-right: 1px double #000000;
    border-bottom: 0px;
    font-size: 20px;
    text-align: center;
}

QFrame#frame_top QRadioButton::Checked
{
    border-top: 5px solid #80FFFF;
    background-color: #000000;
    font-size: 20px;
    height: 60%;
    width: 100px;
}

刚开始是一样高的,但是点击后,第一个RadioButton会比其他的高,怎么回事啊

  • 写回答

7条回答 默认 最新

  • 阿齐Archie 嵌入式领域优质创作者 2024-09-03 10:40
    关注

    以下参考免费微信小程序:皆我百晓生 作答,并由阿齐Archie整理回复,若还有疑问可评论或留言。

    在Qt的QSS(Qt Style Sheets)中,当您点击一个QRadioButton时,它的高度发生变化,这通常是因为::Checked状态的样式设置覆盖了默认状态下的样式。

    在您提供的QSS代码中,::Checked状态的样式指定了border-top为5px,这会使得选中的QRadioButton在视觉上看起来比未选中的QRadioButton更高。这可能是导致您观察到的问题的原因。

    为了解决这个问题,您可以尝试以下步骤:

    1. 确保所有状态的高度一致:在QRadioButton的默认样式和::Checked样式中设置相同的高度。

    2. 调整边框样式:如果您想要在选中时改变QRadioButton的外观,可以考虑只改变边框颜色或添加一个背景色,而不是增加边框的厚度。

    3. 使用padding调整内部空间:如果需要在视觉上区分选中和未选中的状态,可以考虑使用padding属性来调整文本或图标的位置,而不是改变边框。

    以下是根据上述建议修改后的QSS代码:

    QFrame#frame_top QRadioButton:indicator
    {
        width: 0px;
    }
    
    QFrame#frame_top QRadioButton
    {
        height: 60%; /* 确保所有RadioButton的高度一致 */
        width: 100px;
        background-color: #404040;
        border: 1px double #808080; /* 统一边框样式 */
        font-size: 20px;
        text-align: center;
        padding: 10px; /* 增加内部空间 */
    }
    
    QFrame#frame_top QRadioButton::Checked
    {
        background-color: #000000; /* 选中时改变背景色 */
        border: 1px double #80FFFF; /* 选中时改变边框颜色 */
        font-size: 20px;
        height: 60%; /* 确保选中时的高度与未选中时一致 */
        width: 100px;
        padding: 10px; /* 调整选中时的内部空间 */
    }
    

    请尝试使用这段代码,并根据您的需求进一步调整。这样应该可以解决您遇到的RadioButton高度不一致的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 9月11日
  • 已采纳回答 9月3日
  • 创建了问题 9月3日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境