QT中怎么使用QPalette设置按钮控件背景色无效

文章讲述了在QT编程中遇到的无法改变按钮背景色的问题,通过设置按钮的autoFillBackground属性为true和flat属性为true,成功实现了根据用户选择的颜色改变按钮背景色的功能,而非仅仅改变边框颜色。解决方案涉及到QPalette和QColor的使用。
摘要由CSDN通过智能技术生成

💂 个人主页:pp不会算法v
🤟 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主
💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

这里写自定义目录标题

 ui->pushButton->setAutoFillBackground(true);
    //获得当前选择的颜色值
    QStringList colorList = QColor:: colorNames();
    QColor color= QColor(colorList[ui->comboBox_3->currentIndex()]);
    QPalette p = ui->frame_2->palette();
    p.setColor (QPalette::Button,color);
    //把修改后的调色板信息应用到 frame_2 窗体中,更新显示
     ui->frame_2->setPalette(p);
    // ui->frame_2->update();

关于以上代码:并没有实现设置按钮控件的背景色
但是参照QT的帮助文档:
在这里插入图片描述
照上面这么讲确实应该可以改变按钮背景色
但是程序运行之后却只能改变按钮边框的颜色
网上一搜 发现基本上都是说用样式表
但是我这个程序是要实现自己选择颜色来改变按钮的背景色 样式表当然就无济于事了 经过一番查找终于寻得解决办法:把按钮扁平化
flat : bool 存按钮是否扁平化。 默认为false。 除非按下或选中扁平按钮,否则不会绘制背景。

 ui->pushButton->setAutoFillBackground(true);
   ui->pushButton->setFlat(true);// flat : bool 存按钮是否扁平化。 默认为false。 除非按下或选中扁平按钮,否则不会绘制背景。
    //获得当前选择的颜色值
    QStringList colorList = QColor:: colorNames();
    QColor color= QColor(colorList[ui->comboBox_3->currentIndex()]);
    QPalette p = ui->frame_2->palette();
    p.setColor (QPalette::Button,color);
    //把修改后的调色板信息应用到 frame_2 窗体中,更新显示
     ui->frame_2->setPalette(p);
    // ui->frame_2->update();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pp不会算法^v^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值