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

? 个人主页: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。 除非按下或选中扁平按钮,否则不会绘制背景。文章来源地址https://uudwc.com/A/Pmg34

 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();

原文地址:https://blog.csdn.net/weixin_73548574/article/details/129337726

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

上一篇 2023年09月25日 01:04
下一篇 2023年09月25日 01:11