QT中设置背景颜色

2023-05-16

//**layout大小设置方法:reSize(QSize(600, 600));就ok了,这个是设置主窗口的大小,layout会自动适应主窗口的。**//

QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。

Qt中窗口背景的设置,下面介绍三种方法。

1.使用QPalette
2.使用Style Sheet
3.绘图事件

一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。

使用QPalette

使用QPalette来设置背景色

m_pWidget = new QWidget(this);
m_pWidget->setGeometry(0, 0, 300, 100);
QPalette pal(m_pWidget->palette());

pal.setColor(QPalette::Background, Qt::black); //设置背景黑色
m_pWidget->setAutoFillBackground(true);
m_pWidget->setPalette(pal);
m_pWidget->show();

使用Style Sheet

使用样式表来设置背景色,可以参考:Qt Style Sheets文档

注意样式表记得加上color否则会提示无效样式表

color:rgb(85, 170, 0)
m_pWidget = new QWidget(this);
m_pWidget->setGeometry(0, 0, 300, 100);
m_pWidget->setStyleSheet("background-color:black;");
m_pWidget->show();

如果从QWidget子类化一个Widget,为了能够使用样式表则需要为自定义Widget提供paintEvent事件。

void CustomWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);

QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

绘图事件

重写paintEvent,使用QPainter来绘制背景。

****************************设置背景图片

//设置背景图片
    //QPixmap pixmap(":/png/background.png");
    QPixmap pixmap(":/png/back640-480.png");
    QPalette palette;
    palette.setBrush(backgroundRole(), QBrush(pixmap));
    setPalette(palette);

 

设置背景颜色

//设置stack背景色,用于测试

    //stack->setFixedSize(QPixmap(":/png/profile.PNG").width(),480);
    stack->setAutoFillBackground(true);;
    QPalette p=stack->palette();
    p.setColor(QPalette::Window,QColor("blue"));
    stack->setPalette(p);

 

设置layout的边栏

 

setMargin(0)

 

一、使用QT样式表设计部件外观

样式表使用文本描写叙述,能够使用QApplication::setStyleSheet()函数将其设置到整个应用程序上。也能够使用QWidget::setStyleSheet()函数将其设置到一个指定的部件上。

 

 

1、使用代码设置样式表

假设希望对指定部件设置背景色。能够加入例如以下代码:

 

//设置pushButton的背景为黄色

ui->pushButton->setStyleSheet("background:yellow");

//设置horizontalSlider的背景为蓝色

ui->horizontalSlider->setStyleSheet("background:blue");

......

假设希望对相同的部件都设置相同的背景色,能够在它们的父部件上设置样式表,代码例如以下:

setStyleSheet("QPushButton{background:yellow}QSlider{background:blue}");

採用这样的方式,再往主窗体上加入的全部QPushButton和QSlider部件的背景色都会改为这里指定的颜色。

 

 

 

2、在QT设计师界面设置样式表

 

假设须要设置同类部件为同一指定颜色。则在主界面上右击,选则“改变样式表”。加入代码:

QPushButton{
}

注意光标留在第一个大括号后面,然后点击“加入颜色”下拉框选择颜色。这样就能够设置同样控件指定背景色了。

 

 

二、使用调色板QPalette类设计部件外观

QPalette类基本的颜色角色例如以下:

 

//首先要调用setAutoFillBackground(true)来设置窗口自己主动填充背景

ui->pushButton->setAutoFillBackground(true);

//获取pushbutton的调色板

QPalette p = ui->pushButton->palette();

//设置button文本颜色为红色

p.setColor(QPalette::ButtonText, Qt::red);

//设置button背景色为绿色

p.setColor(QPalette:Active, QPalette::Button, Qt::green);

//改动后的调色板

ui->pushButton->setPalette(p);

 

//设置lineEdit不可用

ui->lineEdit->setDisabled(true);

QPalette p2 = ui->lineEdit->palette();

//设置lineEdit不可用时背景色为蓝色

p2.setColor(QPalette::Disabled, QPalette::Base, Qt::Blue);

ui->lineEdit->setPalette(p2);

 

提示:

对于不同的Qt控件,当我们用QPalette设置其背景/前景颜色时,须要指定不同的颜色角色參数。

比方:对于QTextEdit,设置其背景时要使用QPalette::Base ; 对于QWidget则使用QPalette::Window 。參数不匹配时。调色板效果是不会显示的。

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

QT中设置背景颜色 的相关文章

  • USART串口总结2

    前言 xff1a 开始学USART 43 DMA 的时候看到帖子 STM32 UART DMA 实现未知数据长度接收 xff0c 觉得方法妙极了 此下出自此帖子 xff08 整体的思路是这样的 xff0c 一开始设置好DMA 接收 xff0
  • Django实战(自定义模块+Echart Tree+sqlite3)

    主要从以下这些方面依次介绍这次django实战经验 xff1a 数据处理django基本框架搭建sqlite3数据库Json数据Echart树状图Jquery 异步刷新laydate 日期查询前后端交互 数据处理 从本地文件夹中获得所有源文
  • linux内核源码下载地址

    官网链接 xff1a https www kernel org HTTPhttps www kernel org pub GIThttps git kernel org 官网下载经常速度太慢 xff0c 无法下载 xff0c 提供另一个链接
  • Android 网络基础 -- HTTP 请求过程及理解

    本文来自 图解 HTTP xff0c 相关资料与图片均来自于该书 HTTP 通信过程中 xff0c 从客户端到服务端的响应是怎么样的呢 xff1f 这一章 xff0c 我们一起来了解一下 一 HTTP 报文 用于 HTTP 协议交互的信息被
  • Intel RealSense L515&Unreal Engine 4调试记录

    文章目录 前言一 安装与配置1 安装前置条件2 配置 二 编译与运行1 编译2 运行 填坑与测试1 填坑2 测试 前言 Intel RealSense系列推出了适用于Unreal Engine 4的相关插件 xff0c 官网提供了相关示例代
  • Intel RealSense L515 motion的计算与可视化

    文章目录 前言 一 环境准备 二 具体步骤 1 示例下载 2 代码编译 3 填坑 前言 前面的文章介绍了将L515数据映射至UE当中 本篇文章将针对Intel RealSense SDK 2 0 进行姿势的计算与可视化 一 环境准备 Int
  • PELCO-D协议 要点整理

    消息格式 Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6Byte 7Sync ByteAddressCommand 1Command 2Data 1Data 2Checksum The synchronizatio
  • GTEST/GMOCK介绍与实战:Gtest Sample9

    文章目录 1 简介2 用法 1 简介 示例 9显示了使用侦听器API修改谷歌Test的控制台输出和使用其反射API来检查测试结果 2 用法 span class token comment This sample shows how to
  • Gtest输出单元测试报告和输出覆盖率报告

    文章目录 1 要求2 生成gtest测试报告3 生成gtest覆盖率报告 1 要求 编译工具 xff1a 选择Cmake xff0c 单元测试使用Gtest 2 生成gtest测试报告 gtest本身仅能输出xml或者json格式的测试报告
  • GTEST/GMOCK介绍与实战:Gtest Sample10

    文章目录 1 简介2 用法 1 简介 示例 10展示了如何使用侦听器API来实现基本内存泄漏检查 2 用法 span class token comment This sample shows how to use Google Test
  • Bitbake与Yocto

    文章目录 一 Bitbake二 Yocto 一 Bitbake xff08 1 xff09 使用教程可以参考 xff1a BitBake 实用指南 xff0c 大部分步骤跟着操作即可了解bitbake的工作流程 xff1b 他主要参考和翻译
  • 随机漫步

    span class token keyword import span numpy span class token keyword as span np span class token keyword import span rand
  • UTC时间和PTP精确时间协议

    文章目录 一 GMT二 UTC三 GMT vs UTC四 C 43 43 获得当前的UTC时间 一 GMT GMT xff08 Greenwich Mean Time xff09 xff0c 格林威治平时 xff08 也称格林威治时间 xf
  • AutoSar系列之:AutoSar发展

    文章目录 一 Autosar成员二 Autosar历史发展三 使用Autosar前的状态1 原始状态2 进阶状态 四 使用Autosar后的状态1 软硬件隔离2 Autosar优势 一 Autosar成员 二 Autosar历史发展 三 使
  • AutoSar系列之:AutoSar概述

    文章目录 一 Autosar是什么二 架构 一 Autosar是什么 RTE xff1a 用与传递应用层软件和基础软件从之间的信号的 xff1b 隔离应用软件层和基础软件层 xff1b 其中一个层修改了 xff0c 不会影响另外一个层 xf
  • Autosar系列之Appl概述

    文章目录 一 Appl的组成1 SWC通信2 SWC分配 一 Appl的组成 SWC xff1a 应用软件组件 Autosar接口 xff1a SWC之间连接的端口 Runnable xff1a 可运行实体 xff0c SWC里面的一些函数
  • Autosar系列之SWC类型

    文章目录 一 原子级SWC二 集合级SWC三 特殊的SWC 一 原子级SWC 含义 xff1a 不可拆解的SWC 二 集合级SWC eg xff1a 将相似的功能放在一起 三 特殊的SWC IoHwAb xff0c Cdd 在原有的Auto
  • 汽车操作系统

    文章目录 一 汽车控制器类型二 Hypervisor三 QNX Linux Andorid四 Automotive Grade Linux 系统 xff08 AGL xff09 1 介绍2 IVI市场现状3 系统构建 xff08 1 xff
  • Autosar系列之Ports类型

    文章目录 一 接口二 接口类型三 S R接口四 C S 接口 一 接口 接口是连接2个SWC通信的 二 接口类型 三 S R接口 发送 接受数据传输接口 一般通过全局变量才传递 四 C S 接口 客户 服务接口 xff1b 通过函数Runn

随机推荐

  • Autosar系列之Runnable可运行实体

    文章目录 一 RUnnable Entity 一 RUnnable Entity 可运行实体 xff0c 其实就是 C文件内的函数而已 一个SWC可以包含多个Runnable Entity xff0c 就是一个 C文件中可以包含多个函数 x
  • Autosar系列之RTE

    文章目录 一 RTE二 RTE功能 一 RTE RTE Run TIme Environment 是Autosar体系结构的核心 RTE是Autosar软件架构中 xff0c 介于应用层和基础软件层之间 xff0c 是Autosar虚拟功能
  • Autosar系列之Autosar应用层整体入门

    文章目录 一 整个功能示意图二 软件组件SWC分类三 SWC组件 xff1a ports1 发送 接收端口Sender Receiver2 客户端 服务端端口Client Server 四 可运行实体Runnables五 BSW1 微控制器
  • ubuntu下mysql数据库的设置

    gt su root gt mysql span class token operator span u root span class token operator span p gt show databases span class
  • Python装饰器Decorators

    文章目录 一 功能二 64 语法糖三 args kwargs四 带参数的装饰器五 类装饰器六 装饰器顺序 一 功能 装饰器本质上是一个 Python 函数或类 xff0c 它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能 xf
  • Autosar系列之Developer工具

    文章目录 一 什么是DaVinci Developer xff1f 二 DaVinci Developer Workspace三 Software Conponent xff08 SWC xff09 Design 一 什么是DaVinci
  • vscode中调试rust程序

    文章目录 一 vscode运行和调式rust程序二 常见问题1 rust Request textDocument formatting failed 2 cargo命令3 使用rust gdb调试rust程序4 cargo build太慢
  • Available-Python-Tuf

    文章目录 一 Pyhon tuf二 安装方法三 启动四 一个可用的Python Tuf 一 Pyhon tuf 1 github link 向该Pyhton tuf的repo server上传包不会持久化保存到本地 xff0c 是个demo
  • 现代C++教程2023

    文章目录 2 C 43 43 默认实参21 模板模板形参22 C 43 43 11形参包24 std nothrow25 std call once与pthread once 2 C 43 43 默认实参 21 模板模板形参 模板参数 xf
  • Python模板字符串Template

    文章目录 一 Template说明二 Python字符串替换的几种方法1 适用于变量少的单行字符串替换2 字符串命名格式化符替换3 模版方法替换 一 Template说明 1 定义字符串 根据需要 xff0c 设置字符串中需要替换的字符以
  • 聊一聊MCU的软件分层

    一 MCU级软件有必要分层吗 xff1f 1 1 如果不分层会怎样 xff1f 看下面这段示例代码 void main sys init while 1 用PA1控制LED亮灭 GPIO SetBits GPIOA GPIO Pin 1 d
  • Spring Security OAuth2.0认证授权一:框架搭建和认证测试

    一 OAuth2 0介绍 OAuth xff08 开放授权 xff09 是一个开放标准 xff0c 允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息 xff0c 而不 需要将用户名和密码提供给第三方应用或分享他们数据的所有内容
  • Spring Security OAuth2.0认证授权三:使用JWT令牌

    Spring Security OAuth2 0系列文章 xff1a Spring Security OAuth2 0认证授权一 xff1a 框架搭建和认证测试Spring Security OAuth2 0认证授权二 xff1a 搭建资源
  • C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)

    C code namespace UDPServer class Program static void Main string args int recv byte data 61 new byte 1024 构建TCP 服务器 得到本机
  • 旋转矩阵与欧拉角的相互转换

    文章目录 1 概述2 详论2 1 欧拉角的理解2 2 欧拉角转旋转矩阵2 3 旋转矩阵转欧拉角 1 概述 欧拉角与旋转矩阵的相互转换 xff0c 是图形计算中的常见问题 2 详论 2 1 欧拉角的理解 表达旋转变换最简单的理解是三种旋转矩阵
  • 利用handler发送消息报:"This message is already in use"解决办法

    每天频繁的遇到问题 xff0c 解决问题 xff0c 成长不断 所以当我们遇到一个新问题要感到荣幸 xff0c 心想 xff1a 我是第一个遇到这个问题的人 xff0c 我也要成为第一个决绝这个问题的人 这样人后面都学习你的处理方法 xff
  • C语言——strcat函数(字符串拼接)

    字符串拼接strcat使用及实现 拼接 strcat 原型 char strcat char dest const char src 把src所指向的字符串 xff08 包括 39 0 39 xff09 复制到dest所指向的字符串后面 x
  • 傅里叶变换公式整理,意义和定义,概念及推导

    看到论坛有一个朋友提问为什么傅里叶变换可以将时域变为频域 xff1f 这个问题真是问到了灵魂深处 在这我只能简单讲讲我的理解 xff0c 要深刻理解翻信号处理教科书是最好的方法 1 如何描述信号 我们常常用数学模型去抽象物理事件 信号也可以
  • c++简单实现http协议服务器和客户端

    C 43 43 简单实现HTTP GET POST 请求 HTTP 超文本传输协议 是一种客户端与服务端的传输协议 xff0c 最早用于浏览器和服务器之间的通信 xff0c 后来因为其使用灵活 方便等特点 xff0c 广泛用于客户端与服务端
  • QT中设置背景颜色

    layout大小设置方法 xff1a reSize QSize 600 600 就ok了 xff0c 这个是设置主窗口的大小 xff0c layout会自动适应主窗口的 QWidget是所有用户界面对象的基类 xff0c 这意味着可以用同样