python绿色版,python桌面程序开发

通过本文,您将了解到:

Pyside6 Color颜色模型Pyside6 Color颜色系统介绍Pyside6替代系统主题1. Pyside6 Color颜色模型

颜色通常以RGB(红、绿、蓝)分量指定,但也可以以HSV(色调、饱和度、值)和CMYK(青色、品红色、黄色、黑色)分量指定。此外,您还可以使用颜色名称指定颜色。颜色名称可以是任何SVG 1.0 颜色名称。

3色型号

QColor 构造函数根据RGB 值创建颜色。要基于HSV 或CMYK 值创建QColor,请分别使用toHsv() 和toCmyk() 函数。这些函数返回所需格式的颜色副本。此外,您可以使用静态函数fromRgb()、fromHsv() 和fromCmyk() 从指定值创建颜色。或者,使用convertTo() 函数将颜色转换为三种格式之一(以所需格式返回颜色的副本),或者使用setRgb()、setHsv() 和setCmyk() 函数。改变颜色。这种颜色格式。 spec() 函数指定如何指定颜色。要设置颜色,请将RGB 字符串(例如“#112233”)、ARGB 字符串(例如“#ff112233”)或颜色名称(例如“blue”)传递给fromString() 函数。颜色名称取自SVG 1.0 颜色名称。 name() 函数返回格式为“#000000”的颜色名称。您还可以使用setRgb()、setHsv() 和setCmyk() 设置颜色。要获得浅色或深色,请分别使用lighter() 和dark() 函数。

isValid() 函数指示QColor 是否完全合法。例如,RGB 值超出范围的RGB 颜色是非法的。出于性能原因,QColor 在大多数情况下会忽略无效颜色,因此使用无效颜色的结果是未定义的。例如,可以使用red()、hue()和cyan()分别获得颜色分量。

还可以使用getRgb()、getHsv() 和getCmyk() 函数一次性检索颜色分量值。 RGB 颜色模型还允许您通过rgb() 访问颜色分量。

有几个相关的非成员函数。 QRgb 是unsigned int 的类型定义,表示RGB 值的三元组(r、g、b)。请注意,还可以保存Alpha 通道值(有关更多信息,请参阅Alpha 混合绘图部分)。 qRed()、qBlue() 和qGreen() 函数返回与指定QRgb 值对应的分量。另一方面,qRgb() 和qRgba() 函数根据指定的分量值创建并返回QRgb 三元组。最后,qAlpha()函数返回给定QRgb的alpha分量,qGray()函数根据给定值计算并返回灰度值。 QColor 独立于平台和设备。 QColormap 类将颜色映射到硬件。

预定义的颜色命名空间QColorConstants 有20 个预定义的QColor 对象,包括黑色、白色、原色和间色、这些颜色的深色版本以及三种灰色阴影。此外,QColorConstants.Svg 命名空间定义标准SVG 颜色关键字名称的QColor 对象。

预定义颜色

QColorConstants.Color0、QColorConstants.Color1 和QColorConstants.Transparent 颜色用于特殊目的。 QColorConstants.Color0(零像素值)和QColorConstants.Color1(非零像素值)是在QBitmap中绘制的特殊颜色。使用QColorConstants.Color0 绘图将位图位设置为0(透明或背景),使用QColorConstants.Color1 绘图将位图位设置为1(不透明或前景)。 QColorConstants.Transparent 用于表示透明像素。使用此值进行绘制时,将使用适合所使用的基础像素格式的像素值。

HSV 颜色模型RGB 模型是面向硬件的。其性能接近大多数显示器。相比之下,HSV 以更适合人类颜色感知的方式表示颜色。例如,“更强”、“更暗”和“相反”的关系很容易用HSV 表示,但很难用RGB 表示。

HSV 有3 个与RGB 类似的分量

H(色调)。如果颜色是彩色的(不是灰色的),范围是0 到359,如果颜色是灰色的,则没有意义。这代表了大多数人所熟悉的色轮上的度数。红色为0(度),绿色为120,蓝色为240。 HSV颜色模型

S代表饱和度,范围从0到255。值越高,颜色越浓。浅灰色的饱和度接近0,非常暗的颜色的饱和度接近255。饱和

V代表0到255范围内的颜色,代表颜色值或亮度。 0是黑色,255是尽可能远离黑色。透明度

2.Pyside6 Color颜色系统介绍

颜色是视觉设计的重要组成部分,不仅影响您的外观,还影响您的感觉和行为。桌面程序中的默认组件颜色相对单一,因此您必须了解颜色系统,开发组件并进行配色,才能给用户带来视觉冲击力。下面是自定义颜色标签。该类在一些示例中使用。

导入重新从PySide6.QtCore导入Qtfrom PySide6.QtGui导入QPalette,QColorfrom PySide6.QtWidgets导入QLabelclass ColorLable(QLabel): def __init__(self,text,color=None,fontcolor=\’white\’,align=Qt.AlignCenter):\’\’ \’接收到的颜色参数为:颜色名称(例如\’red\’)、十六进制颜色代码(例如\’#000000\’)和RGB值(例如rgb(83, 168, 255))\’\’ \’ super(ColorLable, self). __init__() self.setAlignment(align) self.setStyleSheet(f\’color:{fontcolor}\’) self.setAutoFillBackground(True) 如果颜色为None: color=text rgb_match=re.match(r \’rgb\\((\\ d+), \\s*(\\d+),\\s*(\\d+)\\)\’, color) if rgb_match: r, g, b=map(int, rgb_match.groups()) qcolor=QColor(r, g, b) else: qcolor=QColor(color) r, g, b, _=qcolor.getRgb() hex_str_upper=qcolor.name().upper() 如果颜色是text: self.setText(f\’ {color}

rgb({r}, {g}, {b})

{hex_str_upper}\’) elif text==\’\’: self.setText(f\’rgb({r}, {g}, {b})

{hex_str_upper}\’) else: self.setText(f\'{color}

rgb({r}, {g}, {b})

{hex_str_upper}\’) Palette=self.palette() Palette.setColor(QPalette.Window, qcolor) self.setPalette(palette)原色原色是不能通过混合其他颜色创建的颜色。在传统的色彩理论中,原色包括红、黄、蓝。在光中混合颜色时(例如在屏幕显示上),原色被视为红色、绿色和蓝色(RGB)。代码示例如下:

导入重新从PySide6.QtCore导入Qtfrom PySide6.QtGui导入QPalette,QColorfrom PySide6.QtWidgets导入QLabelclass ColorLable(QLabel): def __init__(self,text,color=None,fontcolor=\’white\’,align=Qt.AlignCenter):\’\’ \’接收到的颜色参数为:颜色名称(例如\’red\’)、十六进制颜色代码(例如\’#000000\’)和RGB值(例如rgb(83, 168, 255))\’\’ \’ super(ColorLable, self). __init__() self.setAlignment(align) self.setStyleSheet(f\’color:{fontcolor}\’) self.setAutoFillBackground(True) 如果颜色为None: color=text rgb_match=re.match(r \’rgb\\((\\ d+), \\s*(\\d+),\\s*(\\d+)\\)\’, color) if rgb_match: r, g, b=map(int, rgb_match.groups()) qcolor=QColor(r, g, b) else: qcolor=QColor(color) r, g, b, _=qcolor.getRgb() hex_str_upper=qcolor.name().upper() 如果颜色是text: self.setText(f\’ {color}

rgb({r}, {g}, {b})

{hex_str_upper}\’) elif text==\’\’: self.setText(f\’rgb({r}, {g}, {b})

{hex_str_upper}\’) else: self.setText(f\'{text}

rgb({r}, {g}, {b})

{hex_str_upper}\’) Palette=self.palette() Palette.setColor(QPalette.Window, qcolor) self.setPalette(palette) 原色示例图像

在视觉设计中,主色是指在照片、设计作品或空间中占主导地位的颜色。这种颜色通常是最引人注目的,可以影响整体的视觉效果和情感氛围。选择正确的原色对于协调您的设计和传达正确的信息非常重要。示例代码如下。

import sysfrom PySide6.QtWidgets import *from color.colorlable import ColorLableclass MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle(\’QColor 的主颜色- 蓝色\’) self .setMinimumSize ( 700, 500) vboxlayout=QVBoxLayout() hboxlayout=QHBoxLayout(); vboxlayout.addWidget(ColorLable(\’品牌颜色\’, \’#409EFF\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’,\’rgb); 168, 255)\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’, \’rgb(102, 177, 255)\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’, \’rgb (121) , 187, 255)\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’, \’rgb(140, 197, 255)\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’, \’rgb (160) , 207, 255)\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’, \’rgb(179, 216, 255)\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’, \’rgb (198) , 226, 255)\’,\’黑色\’)) hboxlayout.addWidget(ColorLable(\’\’, \’rgb(217, 236, 255)\’,\’黑色\’)) vboxlayout.addLayout(hboxlayout) widget=QWidget() 小部件。 setLayout (vboxlayout) self.setCentralWidget(widget)if __name__==\’__main__\’: app=QApplication(sys.argv) window=MainWindow() window.show() app.exec() 主颜色示例图像

暖色:暖色主要包括红色、橙色、黄色及其衍生色。这些颜色通常与太阳、火和温暖的光线联系在一起,给人们带来温暖、舒适和活力。暖色常用于视觉设计、艺术和家居装饰中,以营造友好、欢快的氛围。示例代码如下。

导入sysfrom PySide6.QtWidgets 导入*from color.colorlable 导入ColorLableclass MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle(\’QColor 暖色\’) self.setMinimumSize(700 ) , 500) Layout=QHBoxLayout() Layout.addWidget(ColorLable(\’Red\’)) Layout.addWidget(ColorLable(\’Orange\’)) Layout.addWidget(ColorLable(\’Yellow\’)) Widget=QWidget() widget.setLayout ( Layout) self.setCentralWidget(widget)if __name__==\’__main__\’: app=QApplication(sys.argv) window=MainWindow() window.show() app.exec() 暖色示例

互补色是色轮上相对的颜色,可以形成鲜明的视觉对比,增强彼此的亮度和视觉冲击力。当这些颜色组合时,除了主颜色外,还应该在不同的场景中使用场景颜色(例如,危险颜色代表危险操作)。示例代码如下。

import sysfrom PySide6.QtWidgets import *from color.colorlable import ColorLableclass MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle(\’QColor 的补充颜色\’) self.setMinimumSize(700 , 500) mainlayout=QHBoxLayout() vboxsuccess=QVBoxLayout() hboxsuccess=QHBoxLayout() vboxsuccess.addWidget(ColorLable(\’Success\’, \’#67C23A\’,\’black\’)) hboxsuccess.addWidget(ColorLable(\’\’,\’rgb() 225 , 243, 216)\’,\’黑色\’)) hboxsuccess.addWidget(ColorLable(\’\’, \’rgb(240, 249, 235)\’,\’黑色\’)) vboxsuccess.addLayout(hboxsuccess) mainlayout.addLayout(vboxsuccess) vboxwarn=QVBoxLayout() hboxwarn=QHBoxLayout() vboxwarn.addWidget(ColorLable(\’警告\’, \’#E6A23C\’, \’黑色\’)) hboxwarn.addWidget(ColorLable(\’\’, \’rgb(250, 236, 216)\’, \’ 黑色\’)) hboxwarn.addWidget(ColorLable(\’\’, \’rgb(253, 246, 236)\’, \’黑色\’)) vboxwarn.addLayout(hboxwarn) mainlayout.addLayout(vboxwarn) vboxdanger=QVBoxLayout() hboxdanger=QHBoxLayout ( ) vboxdanger.addWidget(ColorLable(\’危险\’, \’#F56C6C\’, \’黑色\’)) hboxdanger.addWidget(ColorLable(\’\’, \’rgb(253, 226, 226)\’, \’黑色\’)) hboxdanger.addWidget ( ColorLable(\’\’, \’rgb(254, 240, 240)\’, \’黑色\’)) vboxdanger.addLayout(hboxdanger) mainlayout.addLayout(vboxdanger) vboxinfo=QVBoxLayout() hboxinfo=QHBoxLayout() vboxinfo.addWidget(ColorLable( \’ 信息\’, \’#909399\’, \’黑色\’)) hboxinfo.addWidget(ColorLable(\’\’, \’rgb(233, 233, 235)\’, \’黑色\’)) hboxinfo.addWidget(ColorLable(\’\’, \’rgb) ( 244, 244, 245)\’, \’黑色\’)) vboxinfo.addLayout(hboxinfo) mainlayout.addLayout(vboxinfo) widget=QWidget() widget.setLayout(mainlayout) self.setCentralWidget(widget)if __name__==\’__main__\’ : app=QApplication(sys.argv) window=MainWindow() window.show() app.exec() 辅助颜色示例图像

中性色是指含有很少或不含色相的颜色,在配色中充当平衡和稳定的元素。中性色包括黑色、白色、灰色以及各种深浅的棕色和米色。这些颜色由于其灵活性和适应性而广泛应用于设计和艺术中。通常用于文本、背景和边框颜色,以使用各种中性颜色来表达层次结构。示例代码如下。

import sysfrom PySide6.QtWidgets import *from color.colorlable import ColorLableclass MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.setWindowTitle(\’QColor 的补充颜色\’) self.setMinimumSize(700 , 500) mainlayout=QHBoxLayout()layout1=QVBoxLayout()layout1.addWidget(ColorLable(\’主文本\’, \’#303133\’))layout1.addWidget(ColorLable(\’常规文本\’, \’#606266\’))layout1. ( ColorLable(\’辅助文本\’, \’#909399\’))layout1.addWidget(ColorLable(\’占位符文本\’, \’#C0C4CC\’))mainlayout.addLayout(layout1)layout2=QVBoxLayout()layout2.addWidget(ColorLable( \’第一-level border\’, \’#DCDFE6\’, \’black\’))layout2.addWidget(ColorLable(\’二级边框\’, \’#E4E7ED\’, \’black\’))layout2.addWidget(ColorLable( \’三级边框\’, \’#EBEEF5\’, \’黑色\’))layout2.addWidget(ColorLable(\’第四级边框\’, \’#F2F6FC\’, \’黑色\’)) mainlayout.addLayout(layout2) layout3=QVBoxLayout()layout3.addWidget(ColorLable(\’基本黑色\’, \’#000000\’))layout3.addWidget(ColorLable(\’基本白色\’, \’#FFFFFF\’, \’黑色\’))layout3.addWidget(ColorLable(\’透明\’, \’透明\’, \’黑色\’)) mainlayout.addLayout(layout3) widget=QWidget() widget.setLayout(mainlayout) self.setCentralWidget(widget)if __name__==\’__main__\’: app=QApplication(sys .argv) window=MainWindow() window.show() app .exec() 中性色示例图像

颜色选择器Pyside6可以直接通过QColorDialog.getColor()打开颜色选择器。

导入sysfrom PySide6.QtWidgets 导入QApplication, QColorDialogif __name__==\’__main__\’: app=QApplication(sys.argv) color=QColorDialog.getColor() sys.exit(app.exec())Pyside6 颜色选择器

SVG颜色代码表SVG-1

SVG-2

SVG-3

SVG-4

3.更改系统主题

PySide6中的主题切换与HTML页面类似,是通过替换全局样式表来实现的。以下是具体步骤:

1. 定义样式表。为每个主题创建一个样式表文件,或者在大型样式表文件中为每个主题定义不同的部分。

2. 加载样式表。当应用程序启动时,它会根据用户的主题选择加载相应的样式表。这可以通过读取配置文件、数据库或其他持久存储来确定用户最后选择的主题来完成。

3. 应用样式表。使用QApplication 的setStyleSheet 方法应用加载的样式表。这会影响应用程序内所有控件的外观。

4、主题切换:提供界面元素(菜单项、按钮等)供用户选择主题。当用户选择新主题时,会重新加载并应用相应的样式表。

5. 保存用户选择:将用户的主题选择保存在配置文件、数据库或其他持久存储中,以便下次启动应用程序时可以恢复用户的选择。示例代码如下。

import sysfrom PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidgetclass MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle(\’切换QColor 主题\’) self.setGeometry(100, 100 , 400, 300) # 创建中央窗口和布局centralWidget=QWidget() self.setCentralWidget(centralWidget)layout=QVBoxLayout(centralWidget) # 创建切换主题的按钮self.toggleThemeBtn=QPushButton(\’toggle\’) self.toggleThemeBtn . clicked .connect(self.toggleTheme)layout.addWidget(self.toggleThemeBtn) #默认主题self.currentTheme=\’light\’ def toggleTheme(self): if self.currentTheme==\’light\’: self.applyDarkTheme() self. currentTheme=\’dark\’ else: self.applyLightTheme() self.currentTheme=\’light\’ def applyLightTheme(self): self.setStyleSheet(\’\’\’ QPushButton {背景颜色: 白色;颜色: 黑色;} QMainWindow {背景颜色: 浅灰色;} \’\’ \’) def applyDarkTheme(self): self.setStyleSheet(\’\’\’ QPushButton {背景颜色: 黑色;颜色: 白色;} QMainWindow {背景颜色: 深灰色;} \’\’\’)if __name__==\’__main__ \’ : app=QApplication( sys.argv) window=MainWindow() window.show() sys.exit(app.exec()) 皮肤切换示例

本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/646187.html

(0)
上一篇 2024年5月29日
下一篇 2024年5月29日

相关推荐

  • 和平精英怎么换喷漆? 和平精英怎么换盒子皮肤?

    和平精英怎么换喷漆? 和平精英在游戏中暂时不支持更换喷漆的功能,如果想要更换喷漆,需要购买额外的喷漆贴纸。可以在和平精英官方商城或者游戏内商城购买。 和平精英怎么换盒子皮肤? 在和平精英中,要换盒子皮肤,首先你需要拥有对应的盒子皮肤。然后,打开游戏并进入主界面,在左下角找到“背包”按钮并点击进入。 在背包界面,选择“盒子”选项,然后找到你想要换的盒子皮肤。点…

    游戏快讯 49分钟前
  • 和平精英怎么看战绩回放?

    和平精英怎么看战绩回放? 下载一个和平营地即可详细查看每局的战绩回放 和平精英狙击精英历史战绩怎么看? 1、首先进入游戏,在游戏主界面左下角点击“个人头像”;   2、进入个人信息界面,在右侧栏中点击“历史战绩”就可以看到自己的战绩了。 此外,我们也可以利用【和平营地】APP,在这个软件中点击下方“战绩”即可 和平精英谁是内鬼怎么看战绩? 和平精英谁是内鬼结…

    游戏快讯 5小时前
  • 和平精英怎么取消章节?

    和平精英怎么取消章节? 现在已经在章节动画的右上角增加跳过按键,很小一个,可以好好找找 新的征途和平精英怎么过? 1、过关需要投入足够的时间和精力。2、因为新的征途和平精英是一款需要玩家不断升级的游戏,需要不断练习游戏技巧,积攒经验值,投入大量时间进行游戏。3、为了更好地通过游戏,可以多观察游戏攻略,学习游戏技巧,并与队友协作配合,提高游戏水平。同时,也可以…

    游戏快讯 6小时前
  • 和平精英海岛双人跑车分布点?

    和平精英海岛双人跑车分布点? 1.和北京海岛双人跑车一般分布在P城,或者在军事基地右边的跑道上,N港附近,S城附近还有研究所旁边的车库和公路上都会刷双人跑车并且几率比较大。 和平精英海岛配方? 十克茶叶,十克水,20克柠檬即可制作海岛冰茶 和平精英海岛攻略? 和平精英海岛的攻略 和平精英王牌局海岛的运营思路: 1.整局游戏的时间把控 时间对于整场游戏来说十分…

    游戏快讯 7小时前
  • 和平精英经典模式最强武器搭配?

    和平精英经典模式最强武器搭配? 1. 根据我的研究,是AWM狙击步枪。2. AWM狙击步枪之所以被认为是最强武器,是因为它具有极高的伤害输出和精准度。它可以一击击倒敌人,而且在远距离射击时非常准确,可以给予敌人致命打击。3. 此外,AWM狙击步枪还具有较大的弹药容量和较长的射程,使得玩家可以在战斗中保持一定的优势。同时,搭配合适的配件,如8倍镜或者15倍镜,…

    游戏快讯 9小时前