PyQt(Python+Qt)学习随笔:使用QColorDialog.getColor交互设置部件的颜色

PySide2从零开始的python界面设计7---内置工具以ColorDialog为例 QT中有许许多多的内置窗口,以超高的实用性一直广受人们的好评。 获得用户输入的颜色 QT中有一个窗口叫QColorDialog窗口,直接新建窗口并调用其getcolor方法即可 class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.... 阅读详情

PyQt中的部件只要是QWidget的派生类都可以在Designer或应用中通过palette属性来设置各种颜色角色不同状态的颜色,但使用palette比较麻烦,要按不同颜色角色设置palette的QBrush。另外也有部分部件提供了文本前景色或部件背景色的属性,但比较少。

如果针对以上部件要让最终用户自己设置颜色怎么办?要设置颜色首先需要选择颜色,其实PyQt提供了很方便的颜色设置对话框类QColorDialog,应用可以在需要最终用户设置颜色的地方,使用QColorDialog来创建一个对象,然后通过selectedColor就可以返回用户选择的颜色。另外还提供了一个非常便利的类方法,实例都无需创建直接使用即可,这个方法就是getColor。

调用语法
  • getColor(initialColor = Qt.white, parent: QWidget = None, title: str = ‘’, options: QColorDialog.ColorDialogOptions())
说明:
  • 参数initialColor 为初始颜色
  • 参数parent为父窗口,可以为None
  • 参数title为对话框的title显示信息
  • options:控制对话框的外观的可选设置,具体参考官网文档关于枚举类型 QColorDialog.ColorDialogOptions的介绍
  • 当点击对话框的OK按钮返回时返回值为用户选择的颜色,点击Cancel按钮返回时,返回一个无效的颜色,该颜色使用QColor.isValid() 方法返回False,
代码案例:
 color = self.edit.textColor()
 color = QtWidgets.QColorDialog.getColor(color,self,"文本颜色设置")

 if color.isValid():
     self.edit.setTextColor(color)

老猿Python,跟老猿学Python!

Python GUI开发进阶:从Tkinter定制到PyQt5实战,打造现代桌面应用 图形用户界面(GUI)是连接用户与软件功能的重要桥梁,其核心在于通过视觉元素和交互逻辑提供直观的操作体验。在Python生态中,Tkinter作为标准库提供了基础的GUI构建能力,而PyQt5等第三方库则凭借其丰富的控件和强大的渲染引擎,实现了更专业、更现代的界面表现。掌握GUI开发不仅能提升脚本的易用性,更是构建独立桌面应用、数据可视化工具及跨平台解决方案的关键技术。通过样式定制、布局管理和事件驱动编程,开发者可以高效实现从基础工具到商业级软件的界面需求。本文聚焦于**Tkinter深度定制**与**Py 阅读详情

相关推荐

使用 PyQt 中的 QColorDialog.getColor 交互设置部件的颜色

点击按钮后,将弹出颜色选择对话框,你可以选择任意颜色。选择颜色后,对话框将关闭,并且标签的背景颜色将更新为你选择的颜色。接下来,我们将编写一个简单的 PyQt 程序,其中包含一个按钮和一个标签。当用户点击按钮时,将弹出 QColorDialog 对话框,用户可以选择颜色并将其应用于标签。方法来弹出颜色选择对话框,并获取用户选择的颜色。如果颜色有效(即用户未取消选择),我们将通过设置标签的样式表来更新标签的背景颜色为用户选择的颜色。方法中,我们设置了窗口的几何形状和标题,并创建了一个标签和一个按钮。

PixelNovaO的博客 300

Qt5开发从入门到精通——第四篇二节(标准颜色对话框类getColor())

本章节将会给大家带来停靠窗口QColorDialog 类的详细使用方法标准颜色对话框getColor函数也是在应用程序中经常用到的。

weixin_44759598的博客 1032

手把手教你用LangChain4j打造一个“会追问”的AI客服:以航空货运下单为例

本文详细介绍了如何使用LangChain4j构建一个能够主动追问的航空货运AI客服系统。通过对话状态管理、信息缺口识别和渐进式引导等核心技术,实现高效的多轮对话交互。文章包含从交互设计到代码实现的完整指南,特别强调了提示词(Prompt)在优化AI行为中的关键作用,帮助开发者打造更智能的客服解决方案。

weixin_28731223的博客 154

QColorDialog

QColorDialog

weixin_43756295的博客 572

安卓集成华为HMS Scankit实现自定义扫码功能

实现扫码功能 使用的是集成华为扫描的SDK,UI界面借鉴的是谷歌官方的Zxing项目中的自定义view,两者结合实现。 先上效果图: 先在项目根级别(build.gradle)当中配置HMS Core SDK的Maven仓地址。 // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huaw

qq_47625961的博客 5512

从PWM到精准电流:双光耦与LM317构建的4-20mA隔离输出方案

本文详细介绍了基于双光耦与LM317的4-20mA隔离输出方案,适用于工业自动化中的PWM信号转换。该方案通过电气隔离和精准电流调节,显著提升抗干扰能力和信号传输精度,同时降低成本60%。文章还分享了电路设计、参数计算及调试经验,为工程师提供实用参考。

weixin_32006655的博客 283

PySide2+Python:设置窗口背景颜色

一、导入 QPalette 库 from PySide2.QtGui import QPalette 二、设置背景颜色 # 创建一个实例化对象 palette = self.window.palette() # 设置背景颜色,QColor(RGB颜色值) palette.setColor(QPalette.Background,QColor(255,192,203)) # 窗口加载调色板配置信息 self.window.setPalette(palette) # 窗口自动填充背景(启用) self.

J_____Q的博客 4790

Android 13.0 USB 麦克风音频采集优化:解决延时、杂音和无声问题

摘要:本文针对Android智能会议设备中USB麦克风存在的三大问题(录音延时、概率性杂音和无声)进行了深入分析和优化。通过预填充静音帧降低90%启动延时,分离采集/播放互斥锁消除杂音,采用持久化配置解决无声问题,并新增状态通知机制提升用户体验。优化后测试显示:录音延时从1200-2000ms降至100-200ms,故障率降至0%,CPU占用降低30%。该方案适用于各类USB音频设备和视频会议系统,为低延时音频采集提供了可靠解决方案。

ip0417的博客 229

python界面怎么改颜色_Python用PyQt5制作颜色对话框,PyQt图形界面编程之QColorDialog...

前几篇内容我们介绍了PyQt5中3种常见的标准弹出对话框。弹出对话框更加方便人机交流今天,我们来介绍另外一种弹出对话框QColorDialog控件。准备好了吗?马上开始01QColorDialog控件简介这应该也是一种常用的弹出对话框,当程序中需要设置某一控件或控件外字体颜色时,我们使用该控件,对颜色进行选择、设置。它的样子应该是这样的。颜色设置对话框先来看下其继承顺序QColorDialog类继...

weixin_39580042的博客 571

第78篇:AI辅助创意与设计工作流——Logo、海报、UI的自动化生成与迭代(操作教程)

在广告公司和设计团队摸爬滚打几年,我见过太多设计师为一个Logo的配色、一张海报的版式反复修改到深夜。自从AI绘画工具爆发,我就一直在琢磨,怎么把这些“黑科技”真正塞进设计师的日常流水线里,而不是让它们仅仅是个玩具。今天要聊的,就是一套我实践下来,能真正提升效率的AI辅助创意与设计工作流。我们不谈颠覆,只谈增效——如何用AI快速完成Logo、海报、UI的灵感生成、批量出图与智能迭代,把设计师从重复劳动中解放出来,聚焦在真正的创意决策上。

weixin_37464284的博客 539

Vue - 列表拖曳排序 / 鼠标拖动改变顺序排列高效简洁组件(支持PC端与移动端触屏拖动,也可在滚动条内排序自动滚动,流畅丝滑无 BUG)

Vue-高效简洁列表拖曳排序/鼠标拖动改变顺序排列组件支持PC端与移动端触屏拖动,也可在滚动条内排序自动滚动,流畅丝滑无BUG列表拖曳排序插件vuedraggable拉动拽动拖动顺序改变排序js,vue.js,nuxt.js列表如何实现鼠标拖曳改变顺序排列支持滚动条内复杂数据对象带拖动效果动画排序完毕自动排列数组位置克隆Vue.Draggable官方文档教程SortableJS与vuedraggable列表拖动排序Vue拖拽组件库vuedraggable的安装与使用用户用鼠标拖动排序功能源码最好

🏆 前端领域优质创作者 4847

PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色

专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在《PyQt(Python+Qt)学习随笔:QWidget部件的palette属性以及ColorGroup、colorRole的用途和含义》和《PyQt(Python+Qt)学习随笔:使用QColorDialog.getColor交互设置部件的颜色》介绍了QWidg...

老猿Python 1648

定位教程0---定位初介绍

定位教程0---定位算子介绍

Quintin 1万+

python PyQt5 用QColorDialog颜色对话框来设置窗口背景颜色

首先参考https://www.jb51.net/article/163557.htm来生成窗口,窗口如下: 然后,修改按钮颜色部分的实现函数为: def do_btn41(self, event): # 颜色 color = QColorDialog.getColor(Qt.blue, self, "Select Color") if color.isValid(): self.setStyleSheet("#MainWindow {background-col.

yanni0616的博客 1800

YooAsset 学习

YooAssets使用教程

weixin_44884538的博客 1659

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

PythonQt4 字体设置弹窗,轻松自由选择字体的大小颜色

1.修改label字体的大小以下函数是自定义的 def sizeFontSize(self): font, ok = QtGui.QFontDialog.getFont() if ok: self.label_time.setFont(font)下面这句话调出了一个字体大小的设置框,并返回选好的字体信息,即font:font, ok =...

技术改变世界 2254

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

课时47,Pyqt5颜色对话框( QColorDialog)

【代码】课时47,Pyqt5颜色对话框( QColorDialog)

2401_84041215的博客 166

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Python与Qt UI的图形界面编程(二)

和大多数操作系统一样,Windows及Linux都提供了一系列的标准对话框,如文件选择,字体选择,颜色选择等,这些标准对话框为应用程序提供了一致的观感。Qt对这些标准对话框都定义了相关的类,这些类让使用者能够很方便地使用标准对话框进行文件,颜色以及字体的选择。标准对话框在软件设计过程中是经常需要使用的。 Qt提供的标准对话框除了本实例提到的,还有QErrorMessage,QInputDia

lyx的专栏 4164

使用QT制作一个(基于PaddleOCR识别)图像文本识别的软件应用

本文介绍了一个支持手写体、印刷体及中英文识别的智能OCR应用开发方案。系统采用PaddleOCR作为核心引擎,通过PyQt5构建GUI界面,主要功能包括:多张图片批量识别、识别结果导出(TXT/Word/PDF/带标注图片)、HTML报告生成等。文章详细说明了开发环境搭建、界面设计、OCR线程实现、打包部署等完整流程,并提供了PDF/Word编辑器等扩展功能。与现有单张识别应用相比,该系统显著提升了批量处理能力,具有轻量化、跨平台等特点,适合需要高效处理多文档的用户群体。

m0_51689679的博客 391

Qt开发入门:从零到跨平台GUI低手

Qt开发入门:从零到跨平台GUI低手

Yusei_0523的博客 553

QT设置窗体大小和背景颜色

QT设置窗体大小和背景颜色1、 一种方法是设置它的最大窗口值和最小窗口值,并且使最大值和最小值相等。 简单的示例: setMinimumSize(370, 150); setMaximumSize(370, 150); 此时窗口大小便被固定为(370,150)。2、一种方法是使用setFixedSize(),这样一句话就可以解决问题。 简单的示例: setFixedSize(365,240); 窗...

keen 2万+

怎么设置python界面颜色_python-QtGui.QTextEdit设置线条颜色基于行包含...

这是我第一次使用stackoverflow来找到问题的答案.我正在使用QtGui.QTextEdit来显示类似于以下内容的文本,并希望根据某些行是否包含某些文本来更改文本的颜色.以-[开头的行将为蓝色,而包含[ERROR]的行将为红色.我目前有类似以下的内容,from PyQt4 import QtCore, QtGui, uicimport sysclass Log(QtGui.QWidget)...

weixin_39869378的博客 284

qt中关于QWidget的背景颜色和背景图片的设置

<br />首先设置autoFillBackground属性为真 <br />然后定义一个QPalette对象<br />设置QPalette对象的背景属性(颜色或图片)<br />最后设置QWidget对象的Palette<br />实例:<br />QWidget *widget = new QWidget;<br />widget->setAutoFillBackground(true);<br /> <br />QPalette palette;<br /> <br />palette.setCo

crazy_sparrow的专栏 2747

Qt 如何改变窗口(系统)标题栏的颜色?

Qt如何改变窗口(系统)标题栏的颜色?

ken2232的博客 1万+

Python+PyQt架构:设置窗口背景色及分割条颜色

转自:微点阅读https://www.weidianyuedu.com 对于软件开发者来讲,基于Python语言,配合Qt界面库编写软件界面程序,应该说是最经典的一种程序架构了,这种Python+PyQt的程序框架结构即考虑了程序的开发时间效率,也兼顾了复杂漂亮界面的完成能力。在程序的开发过程中,我们经常需要对窗口的颜色、分割条的颜色等进行设置,下面通过一个例子说明在Python中的实现过程。 1、实例说明 为简化说明,这儿设计了一个简单的例子,在主窗口上左右显示了两个子窗口,这两个子窗口以水..

xiaoweids的博客 1197

061.PyQt5_QColorDialog_颜色选择对话框

PyQt5_QColorDialog_颜色选择对话框 颜色对话框的功能是允许用户选择颜色

weixin_50296259的博客 1399
上一篇: PyQt(Python+Qt)学习随笔:使用QFontDialog.getFont交互设置应用或部件的字体
下一篇: PyQt(Python+Qt)学习随笔:QWidget部件的palette属性以及ColorGroup、colorRole的用途和含义
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值