Qt中给按钮设置颜色的方法

2023-05-16

Qt中给按钮设置颜色的方法

    • 第一种_CSS风格
    • 第二种_使用QPalette类
    • 第三种_使用QColor的另一种方法

对于界面编程来说,色彩无疑是一个重点关注的对象,界面好不好看,色彩占据一大半。这里我在学习给界面涂色时做的一个小小的笔记。

第一种_CSS风格

button->setStyleSheet("background-color:yellow");

在这里插入图片描述
这是最简单的一种,但不常用,因为当按钮设置如下属性颜色就看不见了

button->setFlat(true);

这种情况下,只有按钮按钮下的状态才能显示出颜色。
在这里插入图片描述

第二种_使用QPalette类

使用QPalette类也分两种情况:
但是使用QPalette有前提:我们要把按钮放在QFrame框里,同时按钮窗体进行两项设置

    //放到QFrame里
    buttonFrame = new QFrame;
    QVBoxLayout *buttonLayout = new QVBoxLayout(buttonFrame);
    buttonLayout->addWidget(button);
	//进行两项设置
	button->setAutoFillBackground(true);
	button->setFlat(true);

1.使用QColor类

    QColor color(255,0,255);
    QPalette p = buttonFrame->palette();
    p.setColor(QPalette::Button,color);
    button->setPalette(p);

在这里插入图片描述

2.不使用QColor

    QPalette p = buttonFrame->palette();
    p.setColor(QPalette::Button,Qt::green);
	button->setPalette(p);

在这里插入图片描述

第三种_使用QColor的另一种方法

这种方法是调用Qt的预定义颜色,用选取的预定义颜色给控件赋值,常常和QComboBox下拉框配合使用,将获取到的预定义颜色填入下拉框以供选择。

定义下拉框
comboBoxOne
获取Qt预定义颜色,填到下拉框里

void Widget::fillColorList(QComboBox *comboBox)
{
    QStringList colorList = QColor::colorNames();
    QString color;
    foreach (color, colorList)
    {
        QPixmap pix(QSize(70,20));
        pix.fill(QColor(color));
        comboBox->addItem(QIcon(pix),NULL);
        comboBox->setIconSize(QSize(70,20));
        comboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
    }
}

定义响应下拉框改变信号的槽函数(改变按钮颜色)

void Widget::changeColor()
{
    QStringList colorList = QColor::colorNames();
    QColor colors = QColor(colorList[comboBoxOne->currentIndex()]);
    QPalette pOne = buttonFrame->palette();
    pOne.setColor(QPalette::Button,colors);
    button->setPalette(pOne);
    buttonFrame->update();
}

信号和槽函数的连接

这里让我感到困惑的是,信号槽连接的方式只能用Qt4旧版版本的连接方式,新版本就会报错。有没有哪位大佬能给解释一下呀?

connect(comboBoxOne,SIGNAL(activated(int)),this,SLOT(changeColor()));

在这里插入图片描述

Qt5魅力无穷,作为初学者,感到了长路漫漫的愁…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt中给按钮设置颜色的方法 的相关文章

随机推荐

  • Active Directory账号登陆confluence报773错误解决办法

    confluence集成的Active Directory xff0c 在使用AD账号进行登录时总是登录不上 使用管理账号在后台进行测试时提示如下错误 xff1a 可认证测试用户 span class token builtin class
  • 【Keil5】*** Target ‘xxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.解决方法

    出现这个报错的原因在Keil 5 37以后安装compiler version 6 xff0c 如果要使用compiler version 5 xff0c 需要自己安装 下载链接 官网 https developer arm com dow
  • ubuntu 18.04.6 使用内核源码安装内核

    文章目录 前言一 编译内核以及安装二 编译内核模块总结参考资料 前言 上一篇我在ubuntu 18 04 更换内核版本后 xff0c 这篇我们在ubuntu 18 04上用内核源码编译其它版本的内核 xff0c 并进行安装 ubuntu 1
  • 关于CMMI和敏捷过程改进

    问题 xff1a 如果按照CMMI从1到5的思路 xff0c 建设企业的信息化制度 xff08 不是为了评定等级 xff0c 是为了实现项目规范管理 xff09 xff0c 可行吗 xff1f 需要关注哪些问题点呢 xff1f 公司如果是个
  • 【PX4_BUG】You should uninstall ModemManager as it conflicts with any non-modem serial device

    将编译好的固件下载到无人机 xff0c 需要输入命令 make px4 fmu v2 default upload 这里运行时可能会有报错 WARNING You should uninstall ModemManager as it co
  • 【PX4-AutoPilot教程-2】搭建并运行第一个应用程序

    搭建并运行第一个应用程序 本文主要说明如何搭建并运行你的第一个板载应用程序 Firmware src examples px4 simple app文件夹下默认已经有一个完整的例程 xff0c 如果遇到了问题可以作为参考 如果需要自己重新编
  • 【PX4-AutoPilot教程-1】PX4源码文件目录架构分析

    PX4源码文件目录架构分析 PX4源代码的结构复杂 xff0c 这是源代码的总目录结构 xff08 以v1 13 0为例 xff09 xff1a Firmware boards build cmake Documentation integ
  • 【PX4-AutoPilot教程-3】uORB主题订阅发布机制理解、应用和代码阅读

    uORB主题订阅发布机制 1 PX4 Pixhawk的软件体系结构 PX4 Pixhawk的软件体系结构主要被分为四个层次 xff0c 这可以让我们更好的理解PX4 Pixhawk的软件架构和运作 xff1a 应用程序的API xff1a
  • 2020-11-23

    https blog csdn net guofei fly article details 104136008 utm medium 61 distribute pc relevant none task blog BlogCommend
  • MapReduce原理及简单实现

    MapReduce将数据的处理分成了两个步骤 xff0c Map和Reduce Map将输入的数据集拆分成一批KV对并输出 xff0c 对于每一个 lt k1 v1 gt xff0c Map将输出一批 lt k2 v2 gt xff1b R
  • 深度理解Python迭代器

    我们手动的实现一个for循环 xff1a li1 61 list range 10 iteratorObject 61 iter li1 while 1 try print next iteratorObject except StopIt
  • 关于mysql版本差异导致FIND_IN_SET()查询不到数据的问题

    这次发现的问题 xff0c 是在接手项目的时候 xff0c 和安卓端小伙伴测试时候发现的 xff0c 插入数据之后却查不出来 xff0c 通过排查定位到FIND IN SET 函数 xff0c 也是第一次接触FIND IN SET xff0
  • YOLOv4代码学习笔记一

    YOLOV4代码学习笔记一 YOLOV4简介CSPdarknet py学习 本文是对另一个博主的 睿智的目标检测30 Pytorch搭建YoloV4目标检测平台代码的学习 xff0c 由于我是cv新手 xff0c 很多东西不懂 xff0c
  • 无人机光流模块使用技巧

    无人机光流模块使用技巧 光流模块在无 GPS 环境下 xff0c 课实时检测飞机水平移动距离 xff0c 实现对四轴无人机长时间的稳定悬停 图1显示的是湖南优象LC 302光流模块的功能框图 xff0c 光流摄像头拍摄无人机垂直向下的画面
  • CMMI 2.0 和 1.3

    CMMI2 0与1 3在组织形式区别很大 xff0c 很多PA和之前的不太一样了 xff0c 而且PA在2 0中叫实践域 xff0c 1 3中叫过程域 不过其实核心内容没有大的变化 xff0c 只是相关内容的位置进行了调整 xff0c 部分
  • ROS2的RVIZ2无法启动

    在新安装的 xff32 xff2f xff33 2中启动rviz2 xff0c 启动错误 xff0c 显示 Failed to create an OpenGL context BadValue integer parameter out
  • 【TCP 重传、滑动窗口、流量控制、拥塞控制】

    文章目录 重传机制超时重传快速重传SACK方法Duplicate SACK 滑动窗口流量控制那操作系统的缓冲区 xff0c 是如何影响发送窗口和接收窗口的呢 xff1f 窗口关闭 拥塞控制慢启动拥塞避免拥塞发生快速恢复 重传机制 TCP 实
  • 【TCP四次挥手】

    文章目录 TCP 四次挥手过程是怎样的 xff1f 为什么挥手需要四次 xff1f 第一次挥手丢失了 xff0c 会发生什么 xff1f 第二次挥手丢失了 xff0c 会发生什么 xff1f 第三次挥手丢失了 xff0c 会发生什么 xff
  • FreeRTOS事件组----任务同步

    有时 xff0c 应用程序的设计需要两个或多个任务才能彼此同步 例如 xff0c 考虑一个设计 xff0c 其中任务A接收一个事件 xff0c 然后将事件所需的一些处理提供给其他三个任务 xff1a 任务B xff0c 任务C和任务D 如果
  • Qt中给按钮设置颜色的方法

    Qt中给按钮设置颜色的方法 第一种 CSS风格第二种 使用QPalette类第三种 使用QColor的另一种方法 对于界面编程来说 xff0c 色彩无疑是一个重点关注的对象 xff0c 界面好不好看 xff0c 色彩占据一大半 这里我在学习