Qt应用开发(基础篇)——颜色选择器 QColorDialog

一、前言

        QColorDialog类继承于QDialog,是一个设计用来选择颜色的对话框部件。

        对话框窗口 QDialog

        QColorDialog颜色选择器一般用来让用户选择颜色,比如画图工具中选择画笔的颜色、刷子的颜色等。你可以使用静态函数QColorDialog::getColor()直接显示对话框,然后重新选择颜色,还能选择具有透明度的颜色,选择的颜色保存在函数返回的一个QColor类型的返回值。

        用户通过预设的颜色表格选择颜色,或者通过输入RGB值选择,或者通过鼠标在触屏上滑动寻找想要的颜色。按下Enter键触发确认,按下ESC键触发退出。

QColorDialog *cdia = new QColorDialog(this);
cdia->setWindowTitle("my color dialog");
cdia->setCurrentColor(QColor("red"));
cdia->exec();

         或者:

QColorDialog::getColor(QColor("red"),
                       this,
                       "my color dialog",
                       QColorDialog::DontUseNativeDialog);

 

 二、QColorDialog类

1、currentColor

        该属性表示当前在对话框中选择的颜色。

QColor currentColor() const
void setCurrentColor(const QColor &color)

2、options

        该属性表示外观的一些显示策略,默认没有策略。如果需要的话,需要在显示之前设置此策略。

QColorDialog::ColorDialogOptions options() const
void setOptions(QColorDialog::ColorDialogOptions options)
QColorDialog::ColorDialogOption描述
ShowAlphaChannel允许用户选择颜色的alpha分量。
NoButtons不要显示OK和Cancel按钮。
DontUseNativeDialog使用Qt的标准颜色对话框,而不是操作系统自带的颜色对话框。

        在linux下颜色对话框样式为:

        设置DontUseNativeDialog|ShowAlphaChannel之后会恢复成标准对话框,并且多了一个alpha通道数值的输入。

 3、公共函数

 1)open

        打开对话框,并且连接colorSelected信号绑定的槽,当对话框关闭的时候,这个信号槽连接会被断开。

void open(QObject *receiver, const char *member)

示例:打开的同时绑定colorSelected信号的作用槽函数,控制台输出选择的颜色RGB。

public slots:
    void onColorSelected(const QColor &color);
void MainWindow::onColorSelected(const QColor &color)
{
    qDebug()<<color;
}
QColorDialog *dia = new QColorDialog(this);
dia->resize(800,600);
dia->setWindowTitle("my color dialog");
dia->setCurrentColor(QColor("red"));
dia->setOptions(QColorDialog::DontUseNativeDialog | QColorDialog::ShowAlphaChannel);
dia->open(this,SLOT(onColorSelected(const QColor &)));

2)setOption

        单独设置某一项显示策略的使能,参考上文options。

void setOption(QColorDialog::ColorDialogOption option, bool on = true)

3)testOption

        返回某一项显示策略的使能,对应上文setOption。

bool testOption(QColorDialog::ColorDialogOption option) const

4)selectedColor

        返回当前选择的颜色。

QColor selectedColor() const

4、静态公共函数

1)customColor

        返回自定义颜色的索引对应的颜色。

QColor customColor(int index)

2)setCustomColor

        设置自定义颜色每个索引对应的颜色。

void setCustomColor(int index, QColor color)

3)standardColor

        返回标准颜色的索引对应的颜色。

QColor standardColor(int index)

4)setStandardColor

        设置标准颜色的索引对应的颜色

void setStandardColor(int index, QColor color)

5)customCount

        返回自定义颜色的数量。

int customCount()

6)getColor

        使用模式状态打开对话框,默认给定颜色initial为白色可修改,还可传入窗口标题title和颜色对话框显示策略options

QColor getColor(const QColor &initial = Qt::white, 
QWidget *parent = nullptr, 
const QString &title = QString(), 
QColorDialog::ColorDialogOptions options = ColorDialogOptions())

5、信号

1)colorSelected

        用户按下ok之后或者确认之后触发该信号。

void colorSelected(const QColor &color)

 2)currentColorChanged

        当窗口的颜色发生变化就会触发该信号。

void currentColorChanged(const QColor &color)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue集成mars3d后,basemaps加不上去

首先&#xff1a; <template> <div id"centerDiv" class"mapcontainer"> <mars-map :url"configUrl" οnlοad"onMapload" /> </div> </template> <script> import MarsMap from ../component…

Golang:微服务常用代码分层结构

1.代码结构 代码分层结构是一个老生常谈的话题&#xff0c;好的代码结构能够使得系统易于理解、开发及维护&#xff0c;如果代码结构很混乱就会使得不同层级的代码块耦合&#xff0c;导致难以维护和拓展。 比较经典的代码结构&#xff08;宏观&#xff09;有Web的MVC模式分层结…

Spring Cloud Foundry上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873

文章目录 0.前言1.参考文档2.基础介绍描述如果满足以下任一条件&#xff0c;应用程序就不会有太大风险&#xff1a;受影响的Spring产品和版本 3.解决方案3.1. 升级版本3.2. 替代方案 0.前言 背景&#xff1a;公司项目扫描到 Spring Cloud Foundry上使用通配符模式匹配进行的安全…

tp5使用redis及redis7.2安装到window系统上面

redis安装教程 redis7.2安装到window系统上面 https://download.csdn.net/download/qq_39161501/88269037 解决方案&#xff1a;修改配置php.ini文件 打开Apache目录下的php.ini文件&#xff0c;搜索extension&#xff0c;在空白处加上下列代码&#xff1a; 注&#xff1a;e…

2019CVPR Semantic Graph Convolutional Networks for 3D Human Pose Regression

基于语义图卷积网络的三维人体姿态回归 源码 https://github.com/garyzhao/SemGCN 摘要 在本文中&#xff0c;我们研究了学习图卷积网络&#xff08;GCN&#xff09;回归的问题。GCN的当前体系结构受限于卷积滤波器和共享的变换矩阵为的小感受野。为了解决这些限制&#xff…

并发 04(Callable,CountDownLatch)详细讲解

并发 Callable 1 可以返回值 2可以抛出异常 泛型指的是返回值的类型 public class Send {public static void main(String[] args) {//怎么启动Callable//new Thread().start();Aaa threadnew Aaa();FutureTask futureTasknew FutureTask(thread);new Thread(futureTask,&qu…

划分字母区间【贪心算法】

划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。…

深度学习6:自然语言处理-Natural language processing | NLP

目录 NLP 为什么重要&#xff1f; 什么是自然语言处理 – NLP NLP 的2大核心任务 自然语言理解 – NLU|NLI 自然语言生成 – NLG NLP(自然语言处理) 的5个难点 NLP 的4个典型应用 NLP 的 2 种途径、3 个核心步骤 总结 自然语言处理 NLP 为什么重要&#xff1f; “语言…

Unity3D下如何采集camera场景数据并推送RTMP服务?

Unity3D使用场景 Unity3D是非常流行的游戏开发引擎&#xff0c;可以创建各种类型的3D和2D游戏或其他互动应用程序。常见使用场景如下&#xff1a; 游戏开发&#xff1a;Unity3D是一个广泛用于游戏开发的环境&#xff0c;适用于创建各种类型的游戏&#xff0c;包括动作游戏、角…

汽车电子笔记之:基于AUTOSAR的多核监控机制

目录 1、概述 2、系统监控的目标 2.1、任务的状态机 2.2、任务服务函数 2.3、任务周期性事件 2.4、时间监控的指标 2.5、时间监控的原理 2.6、CPU负载率监控原理 2.6.1、设计思路 2.6.2、监控方法的评价 3、基于WDGM模块热舞时序监控方法 3.1、活跃监督 3.2、截至时…

wireshark 流量抓包例题

一、题目一(1.pcap) 题目要求&#xff1a; 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀&#xff08;加上下划线例如abc&#xff09; 4.第一个受害主机网站数据库的名字 看到题目SQL注入&#xff0c…

Modbus通信协议

Modbus通信协议 一、概述 Modbus通信协议是一种工业现场总线协议标准&#xff0c;常用的Modbus协议有以下三种类型&#xff1a;Modbus TCP、Modbus RTU、Modbus ASCll。 Modbus通信协议解决了通过串行线路在电子设备之间发送信息的问题。该协议在遵循该协议的体系结构中实现主…

CSAPP的Lab学习——BombLab

文章目录 前言一、一号炸弹&#xff08;小试牛刀&#xff09;二、二号炸弹&#xff08;六重循环&#xff09;三、三号炸弹&#xff08;不同输入&#xff0c;不同答案&#xff09;四、四号炸弹&#xff08;判断语句的实现&#xff09;五、五号炸弹&#xff08;跳转&#xff0c;循…

【MTK平台】根据kernel log分析wifi scan的时候流程

一 概要: 本文主要讲解根据kernel log分析下 当前路径下(vendor/mediatek/kernel_modules/connectivity/wlan/core/gen4m/)wifi scan的时候代码流程 二. Log分析: 先看Log: 2.1)在Framework层WifiManager.java 方法中,做了一个标记,可以精准的确认时间 这段log可以…

探索UniApp分包

目录 什么是UniApp分包&#xff1f; UniApp分包的原理 优势 如何使用UniApp分包 1.manifest.json文件配置 2.静态图片资源分包注意事项 3.pages.json配置 结论 探索UniApp分包&#xff1a;优化移动应用性能与用户体验 在移动应用开发领域&#xff0c;性能和用户体验是至…

【vue2第七章】vue的四个生命周期与八个钩子函数

vue的四个生命周期与八个钩子函数 Vue的四个生命周期有&#xff1a;创建&#xff08;creation&#xff09;、挂载&#xff08;mounting&#xff09;、更新&#xff08;updating&#xff09;和销毁&#xff08;destroying&#xff09;。 钩子函数是什么&#xff1a; vue生命周…

vue3下的密码输入框(antdesignvue)

参考:vue下的密码输入框 注意:这是个半成品,有些问题(input输入框加了文字间距letter-spaceing,会导致输入到第6位的时候会往后窜出来一个空白框、光标位置页会在数字前面),建议不采用下面这种方式,用另外的(画六个input框更方便) 效果预览 实现思路 制作6个小的正方…

Linux中Tomcat发布war包后无法正常访问非静态资源

事故现象 在CentOS8中安装完WEB环境&#xff0c;首次部署WEB项目DEMO案例&#xff0c;发现可以静态的网页内容&#xff0c; 但是无法向后台发送异步请求&#xff0c;全部出现404问题&#xff0c;导致数据库数据无法渲染到界面上。 原因分析 CentOS请求中提示用来获取资源的连…

Prometheus监控(一)

文章目录 监控对于企业和运维工作的重要性监控&#xff1f;告警&#xff1f;数据采集 Prometheus介绍Prometheus相对于老牌监控的优势和不足 理想的监控系统的实现监控系统设计&#xff08;架构师&#xff09;监控系统的搭建数据采集的编写监控数据分析和算法稳定性测试监控自动…

IPC进程间通信及示例代码

一. 什么是进程通信 进程通信&#xff08; InterProcess Communication&#xff0c;IPC&#xff09;就是指进程之间的信息交换。实际上&#xff0c;进程的同步与互斥本质上也是一种进程通信&#xff08;这也就是待会我们会在进程通信机制中看见信号量和 PV 操作的原因了&#x…
最新文章