【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog

news2024/11/24 17:52:44

  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt窗口 | 标准对话框 | 颜色对话框QColorDialog

文章编号:Qt 学习笔记 / 55

文章目录

  • Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
    • 一、QColorDialog介绍
      • 1. 简介
      • 2. 常用方法
    • 二、QColorDialog使用
      • 1. 使用getColor显示对话框并返回颜色
      • 2. 对话框选择颜色并修改窗口颜色


一、QColorDialog介绍

1. 简介

QColorDialog是一个对话框类,用于选择颜色。它提供了一个用户友好的界面,可以让用户从预定义的颜色列表中选择颜色,或者自定义颜色。该类是Qt框架中的一部分,可以用于创建图形化界面应用程序。

使用QColorDialog,可以方便地为应用程序添加颜色选择功能。用户可以通过点击颜色列表或使用颜色选择器直接选择颜色,还可以通过调节红、绿、蓝色调来选择颜色。

在这里插入图片描述

2. 常用方法

getColor:显示颜色选择对话框并返回用户选择的颜色。可以指定默认颜色和对话框标题。

//参数说明  参数1:设置默认颜⾊  参数2:设置父对象  参数3:设置对话框标题 
QColor color = QColorDialog::getColor(Qt::red, this, "颜色窗口标题");

setCurrentColor:设置对话框中显示的当前颜色。

QColorDialog::setCurrentColor(color);

setCustomColor:设置自定义颜色列表,可以通过该方法传递一个颜色列表给对话框。

QColorDialog::setCustomColor(0, Qt::green);

setOptions:设置对话框的选项,可以通过该方法传递一个选项标志给对话框。

QColorDialog::setOptions(QColorDialog::ShowAlphaChannel);

open:打开对话框并返回用户选择的颜色。可以将打开对话框作为模态对话框或非模态对话框。

if (QColorDialog::exec() == QDialog::Accepted) {
    QColor color = QColorDialog::currentColor();
    // 处理选择的颜色
}

二、QColorDialog使用

1. 使用getColor显示对话框并返回颜色

在界面中新建一个按钮,用于触发对话框
在这里插入图片描述

使用转到槽,生成按钮槽函数如下图
在这里插入图片描述
对槽函数进行编辑

void MainWindow::on_pushButton_clicked()
{
    //函数的返回值就是用户选择的颜色
    QColor color = QColorDialog::getColor(QColor(0,255,0),this,"窗口标题");
    //打印到日志中
    qDebug()<<color;
}

2. 对话框选择颜色并修改窗口颜色

对刚刚的槽函数进行添加,先获取到对话框中的RGB三种颜色的参数值,并通过QSS的方式设置到窗口中,代码如下(有两种方式推荐)

//方式1
void MainWindow::on_pushButton_clicked()
{
    //函数的返回值就是用户选择的颜色
    QColor color = QColorDialog::getColor(QColor(0,255,0),this,"窗口标题");
    //打印到日志中
    qDebug()<<color;
    QString style="background-color:rgb("+QString::number(color.red())+", "
            +QString::number(color.green())+", "+QString::number(color.blue())+");";
    this->setStyleSheet(style);
}
//方式2
void MainWindow::on_pushButton_clicked()
{
    //函数的返回值就是用户选择的颜色
    QColor color = QColorDialog::getColor(QColor(0,255,0),this,"窗口标题");
    //打印到日志中
    qDebug()<<color;
    char style[1024]={0};
    sprintf(style,"background-color:rgb(%d,%d,%d);",color.red(),color.green(),color.blue());
    this->setStyleSheet(style);
}

在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1826756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

带侧边栏布局:带导航的网页

目录 任务描述 相关知识 HTML(HyperText Markup Language) CSS&#xff08;Cascading Style Sheets&#xff09;&#xff1a; 编程要求 任务描述 在本关中&#xff0c;你的任务是创建一个带侧边栏和导航的网页布局。这种布局通常用于网站或应用程序&#xff0c;其中侧边栏…

企业网站建设方案

企业网站建设方案是企业推广和宣传的重要工具&#xff0c;可以帮助企业树立良好的形象&#xff0c;吸引更多的客户和合作伙伴。一个好的企业网站应该具备用户友好的界面设计、快速的加载速度、完善的信息分类和搜索功能、优质的内容和多样化的互动体验。下面将从以下几个方面介…

适合加密货币交易者的免费指标

本文介绍了7种用于分析加密货币市场的免费技术指标&#xff0c;帮助交易者和投资者提升交易技巧和盈利能力。原文: Best 7 Free Trading Indicators for Every Cryptocurrency Trader Austin Distel Unsplash 大家好&#xff01;无论是加密货币市场的交易者还是投资者&#xff…

基于springboot实现交通管理在线服务系统项目【项目源码+论文说明】

基于springboot实现交通管理在线服务系统演示 摘要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装交通管理在线服…

【设计模式深度剖析】【6】【行为型】【中介者模式】

&#x1f448;️上一篇:迭代器模式 | 下一篇:观察者模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 文章目录 中介者模式定义英文原文直译如何理解&#xff1f; 中介者模式的角色1. 中介者&#xff08;Mediator&#xff09;2. 具体中介者&#xff08;ConcreteMediato…

最新2024FL Studio21中文激活注册码获取方法步骤教程!

在音乐创作领域&#xff0c;FL Studio21无疑是一款强大的工具。然而&#xff0c;对于许多初学者来说&#xff0c;如何正确注册和激活FL Studio21成了一个难题。今天&#xff0c;我们就来为大家详细解答这个问题。 我们需要在FL Studio21的官方网站上购买正版软件。 在购买过程…

SpringBoot+Maven笔记

文章目录 1、启动类2、mapper 接口3、控制类4、补充&#xff1a;返回数据时的封装5、补充a、mybatisplus 1、启动类 在启动类上加入MapperScan扫描自己所写的mapper接口 package com.example.bilili_springboot_study;import org.mybatis.spring.annotation.MapperScan; impo…

OpenGL3.3_C++_Windows(10)

最终演示 ​ demo演示 Assimp模型渲染 模型导入库Assimp&#xff1a;导入很多种不同的模型文件格式&#xff0c;加载至Assimp的通用数据结构&#xff08;树形&#xff09;中&#xff0c;不论导入的是什么种类的文件格式&#xff0c;用同一种方式访问我们需要的数据。 Assimp库…

计算机网络(8) Finite State Machines(有限状态机)

一.建立连接&#xff08;三次握手&#xff09; 建立连接过程中的状态转换如下&#xff1a; 客户端&#xff1a; 发送SYN CLOSED >>>>>>>>>>>>>>SYN SENT(第一次握手) 接收SYNACK发送ACK …

2779. 数组的最大美丽值

简单翻译一下题目意思&#xff1a; 对于每个 nums[i] 都可以被替换成 [nums[i]-k, nums[i]k] 区间中的任何数&#xff0c;区间左右是闭的。在每个数字可以替换的前提下&#xff0c;返回数组中最多的重复数字的数量。 第一想法是用一个哈希表&#xff0c;Key 是可以被替换的数…

统计信号处理基础 习题解答10-12

题目&#xff1a; 如果&#xff0c;其中&#xff1a; 对某个&#xff0c;令。证明当时使最大。另外&#xff0c;证明。它们为什么是相同的&#xff1f;如果&#xff0c;基于的的MMSE估计量是什么&#xff1f; 解答&#xff1a; 根据多维高斯分布的定义&#xff0c;可以得到&am…

探索未来边界:前沿技术引领新纪元

目录 引言 一、人工智能与深度学习&#xff1a;智慧生活的引擎 1.医疗应用 2.智能家居 3.自动驾驶 二、量子计算&#xff1a;解锁宇宙的密钥 1.量子比特示意图 2.量子计算机实物图 3.分子模拟应用 三、生物技术&#xff1a;生命科学的革新 1.CRISPR-Cas9基因编辑图 2.合成生…

希亦、添可、石头洗地机哪款好用?2024洗地机深度测评

今年的洗地机市场竞争异常激烈&#xff0c;各大品牌纷纷推出了自己的旗舰产品。这对消费者来说是个好消息&#xff0c;因为有更多的选择空间。然而&#xff0c;面对如此多的优质洗地机&#xff0c;选择合适的一款也成了一种“幸福的烦恼”。 作为一个专业的测评人士&#xff0…

Java中ArrayList(顺序表)的自我实现(如果想知道Java中怎么自我实现ArrayList,那么只看这一篇就足够了!)

前言&#xff1a;在 Java 编程中&#xff0c;ArrayList 是一种非常常用的数据结构&#xff0c;它提供了动态数组的实现方式&#xff0c;可以方便地存储和操作数据。相比于传统的数组&#xff0c;ArrayList 具有更多的灵活性和便利性&#xff0c;可以根据需要动态地调整大小&…

深入理解计算机系统 CSAPP 家庭作业6.37

S256 N64时: sumA:这个很简单了,不说了 sumB:如下表. i递增时一直不命中 读到j1,i0 即读a[0][1]时 组0存放的是a[48][0] -a[48][3] 接着读a[1][1]时,组16放的是a[49][0]-a[49][3],j递增之后还是一直不命中 组0:a[0][0]a[16][0]a[32][0]a[48][0]a[0][1]组16:a[1][0]a[17][…

Python设计模式 - 简单工厂模式

定义 简单工厂模式是一种创建型设计模式&#xff0c;它通过一个工厂类来创建对象&#xff0c;而不是通过客户端直接实例化对象。 结构 工厂类&#xff08;Factory&#xff09;&#xff1a;负责创建对象的实例。工厂类通常包含一个方法&#xff0c;根据输入参数的不同创建并返…

训练营第三十八天 | 309.最佳买卖股票时机含冷冻期动态规划系列七总结714.买卖股票的最佳时机含手续费股票问题总结篇!

309.最佳买卖股票时机含冷冻期 力扣题目链接(opens new window) 给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#x…

泛微开发修炼之旅--15后端开发连接外部数据源,实现在ecology系统中查询其他异构系统数据库得示例和源码

文章链接&#xff1a;15后端开发连接外部数据源&#xff0c;实现在ecology系统中查询其他异构系统数据库得示例和源码

IT入门知识博客文章大纲(0/10)

IT入门知识博客文章大纲 引言 什么是IT&#xff1f; 信息技术&#xff08;Information Technology&#xff09;&#xff0c;互联网技术是指在计算机技术的基础上开发建立的一种信息技术 。互联网技术通过计算机网络的广域网使不同的设备相互连接&#xff0c;加快信息的传输速度…

STM32项目分享:车牌号识别系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.…