Qt中QColor用法

QColor

Qt关于QColor类的官方文档:https://doc.qt.io/qt-5.14/qcolor.html

一、简介

QColor为我们提供更多的颜色选择,如果只想用普通颜色,完全可以使用Qt中预定义颜色,如Qt::redQt::yellowQt::blue等等。

进一步的调整颜色深浅度也可以使用QColor

QColor为我们提供很多颜色模组,有RGB、HSV、CMYK、HSL等等。

在学习前,首先要了解,颜色模块中,所有的“1”都是255。

RGB常用于硬件显示,在基本的颜色调整方面都比较方便,.setRgb(int r,int g,int b,int a = 255)设置的前三个参数就是用于红、绿、蓝颜色调整。

HSV和RGB理解上差不多,但是HSV拥有调色功能。

HSL类似于HSV,但是HSL多了个曝光功能。

CMYK这个用于印刷机和打印机。

只介绍前两种常用方法。

二、颜色深浅度调整

除了白色,其他颜色都是有深浅值的,在QColor中,深浅度由“0”-“1”,也就是0-255。0是黑色,255是设置的颜色本身,其值可以在0-255之间调整。具体看下面颜色渐变:

如代码:

	QColor color;
	color.setRed(177);

运行结果:

三、RGB

Qt官方文档中表示(1,0,0)意味(红,绿,蓝)选择与否,和程序内部颜色整形无关联

在定义颜色时,使用.setRgb(int r,int g,int b,int a = 255);。同上一节所述,在输入整形时,应该输入0-255之间的数(具体参上)。后面的a默认是255,说明前三组组成的颜色的透明度,其深浅度为“1”。
(备注:第四个参数a指的是透明度,255为全色,小于255可以看见图像后面的内容,等于0或大于255时效果一样,全透明)

代码:

    QPainter paint(this);
    QColor color;

    color.setRgb(0,255,255,255);

    paint.setBrush(color);
    paint.drawRect(10,10,180,80);

效果:

如果想不运行当前程序而检测颜色,可将鼠标光标放置在数字上,它会自动显示当前颜色。

四、HSV

HSV和RGB大致相同,但是只是参数不同。

HSV全称“Hue Saturation Value”意为(色调 色饱和度 值)。

色调既是其原本颜色。如果将颜色作为一个轮盘,那么0表示的是红色,120表示的是绿色,240表示的是蓝色。如下:

色饱和度从也是从“0”-“1”,即0-255,其遵从,

同理,从0-255,遵从

代码:

    QPainter paint(this);
    QColor color;

    color.setHsv(0,255,255,255);	//H,S,V,a默认255,参上

    paint.setBrush(color);
    paint.drawRect(10,10,180,80);

五、QColor构造函数

	QColor(const QColor &color)
	//paint.setBrush(QColor(color));
	
	QColor(QLatin1String name)
	//paint.setBrush(QColor(QLatin1String("red")));
	
	QColor(const char *name)
	//paint.setBrush(QColor("red"));
	
	QColor(const QString &name)
	//paint.setBrush(QColor("red"));
	
	QColor(QRgba64 rgba64)
	QColor(QRgb color)
	QColor(int r, int g, int b, int a = 255)
	//paint.setBrush(QColor(255,0,0));
	
	QColor(Qt::GlobalColor color)
	//paint.setBrush(QColor(Qt::red));
	QColor()

五、颜色代码——“#FFFF”

前文介绍了颜色的使用,“0” —— 0,“1” —— 255,这是基于十进制上使用的。
具体代码有

    painter.setBrush(QColor(0,225,225));

这是使用的QColor构造函数中的(int r,int g,int b)参数选择。显而易见,这里的整形参数都是十进制的。QColor也有一个输入QString变量参数的函数。我们可以在QString中直接输入颜色,

    painter.setBrush(QColor("red"));

或者输入颜色代码

    painter.setBrush(QColor("#00FFFF"));		//aqua颜色名,相当于参数(0,255,255)

**颜色代码由六位十六进制组成,每两位十六进制就代表着r、g、b的整形。**所以,“0”2—— 0 10——“00”16,“1”2—— 25510 —— “FF”16

六、颜色表格(部分)

按颜色名称排序

来源:CSS通用color

### 回答1: 在Qt,可以使用setStyleSheet方法为窗口或部件设置样式表。setStyleSheet方法接受一个QString类型的参数,该参数包含CSS样式表的规则。 以下是使用setStyleSheet方法设置样式表的示例代码: ```cpp // 创建一个QPushButton QPushButton *button = new QPushButton("Click me!", this); // 设置样式表 button->setStyleSheet("QPushButton {" "background-color: blue;" "color: white;" "border-style: outset;" "border-width: 2px;" "border-radius: 10px;" "border-color: beige;" "font: bold 14px;" "min-width: 10em;" "padding: 6px;" "}"); // 将按钮添加到窗口 button->show(); ``` 在上面的示例代码,我们创建了一个QPushButton并使用setStyleSheet方法设置了一个样式表。样式表定义了按钮的背景颜色、文本颜色、边框样式、边框宽度、边框半径、边框颜色、字体、最小宽度和内边距。 ### 回答2: Qt的setStyleSheet()是一种强大的方法,它可以帮助用户在Qt应用程序实现自定义的样式效果。 该方法允许用户通过使用CSS语言来设置各种控件的样式。此外,它可以帮助用户更快地进行界面开发,使得设计师能够更快地实现自己的设计想法。 setStyleSheet()方法可以以字符串形式接受CSS样式表,并将其应用于给定的小部件、控件或整个应用程序的所有小部件。它可以让用户自定义控件的背景颜色、字体、边框等,从而创造出独特的UI外观。 使用styleSheet可以使用简单的选择器,甚至可以使用复杂的选择符来针对特定情况提供特定的样式。例如,您可以为按钮设置鼠标悬停时的样式,并使用“:hover”伪类规则实现这一目的。 setStyleSheet()还允许用户使用QPalette类来设置应用程序使用的颜色,并仅在设置背景、文本和其他颜色时使用该类。这样,每个颜色都可以由设计师定制,而不必在代码逐个设置。 总之,setStyleSheet()方法在Qt应用程序的界面开发极其有用,可以使用户更快地实现自己的想法,从而增强了开发人员的生产率和用户的体验。 ### 回答3: Qt是一个非常流行的跨平台应用程序开发框架,提供了非常丰富的GUI组件。Qt允许用户通过其强大的setStyleSheet函数来改变组件的外观。这个函数允许用户使用CSS样式描述来设置组件的外观。这个函数的使用非常简单,只需要将样式描述作为参数传递给函数即可。 使用setStyleSheet函数可以自定义各种不同的组件属性,包括背景颜色、字体颜色、边框宽度、圆角大小等等。使用这个函数的一个好处是,如果需要修改组件的外观,只需要修改一次样式描述即可,而不用修改每个组件的属性。 为了使用setStyleSheet函数,必须熟悉CSS样式描述的基本语法。CSS样式描述使用类似于HTML的语法,但是它包含了一些额外的属性,如背景图片和渐变颜色等。 例如,以下代码将QPushButton的背景颜色设置为红色,边框宽度为1像素,字体颜色为白色: ``` QPushButton { background-color: red; border: 1px solid black; color: white; } ``` 需要注意的是,在使用setStyleSheet函数时,只需要为组件设置自定义样式描述,不需要为每个组件创建一个独立的样式表。 总之,setStyleSheet函数是Qt GUI编程非常重要的函数之一。我们可以使用它来美化组件的外观,并快速实现视觉效果。学好setStyleSheet函数,可以让我们的Qt应用程序更加美观和舒适。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值