PyQt5综合实践(三)QLineEdit控件与校验器QValidator

【pyqt5学习】——QLineEdit控件输入校验器Validator、掩码setInputMask限制输入、textChanged信号 【pyqt5学习】——QLineEdit控件输入校验器、掩码限制输入 阅读详情

Qvalidator常用来设置输入框的合法性,当合法时,才能成功输入并显示到输入框。

QValidator就是一个抽象类,其子类QIntValidator、QDoubleValidator分别用来设置合法int和合法Double,而还有一个子类QRegExpValidator是用来结合正则表达式,判断合法性。

以下代码是 限制IP和port的输入 以及一个限制输入浮点数 的例子:

from PyQt5.QtCore import QRegExp
from PyQt5.QtGui import QRegExpValidator, QIntValidator, QDoubleValidator
from PyQt5.QtWidgets import *
import sys

class QLineEditValidator(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("文本输入框的校验器")
        # 实例化表单布局
        formLayout = QFormLayout()

        # 创建三个文本输入框
        ipLineEdit = QLineEdit()
        portLineEdit = QLineEdit()
        doubleLineEdit = QLineEdit()
        
        # 实例化整型校验器,并设置范围0~65536
        portValidator = QIntValidator(0,65536)
        # 设置 正则表达式,显示输入0.0.0.0~255.255.255.255
        regExp = QRegExp('^((2[0-4]\d|25[0-5]|\d?\d|1\d{2})\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$')
        # 实例化自定义校验器
        ipValidator = QRegExpValidator(regExp)
        # 实例化浮点校验器,并设置范围-360~360,精度为小数点两位
        doubleValidator = QDoubleValidator(-360,360,2)

        # 为文本输入框设置对应的校验器
        ipLineEdit.setValidator(ipValidator)
        portLineEdit.setValidator(portValidator)
        doubleLineEdit.setValidator(doubleValidator)

        # 文本输入框添加到表单布局上
        formLayout.addRow("IP", ipLineEdit)
        formLayout.addRow("Port", portLineEdit)
        formLayout.addRow("Double",doubleLineEdit)

        self.setLayout(formLayout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QLineEditValidator()
    main.show()
    sys.exit(app.exec_())

运行后结果:

PYQT5学习:QLineEdit验证器的使用 import sys from PyQt5.Qt import * #因为验证器QValidator为抽象类,不能直接实例化,所以先用继续方式生成一个子类 class AgeValidator(QValidator): #验证器会直接调用validate方法,所以可以用改写方法得验证策略 def validate(self, input_str, pos_int): try: if 18<= int(input_str) <= 180: 阅读详情

相关推荐

QT的QIntValidator类的使用

详细说明 QIntValidator类提供了一个验证程序,可确保字符串包含指定范围内的有效整数。 使用示例: QValidator *validator = new QIntValidator(100, 999, this); QLineEdit *edit = new QLineEdit(this); // the edit lineedit will only accept integers between 100 and 999 edit->setValidator(vali

希望我的博客,能帮上你解决学习中工作中所遇到的问题 5623

通过QIntValidator实现最小值的限制

问题: 使用QIntValidator限制QLineEdeit整数输入的最大最小值时,如设置为[20,300],发现最小值仍然可以设置为20以下。 QValidator类相关说明: QValidator类提供一种验证输入是否有效的方法。 QValidator提供validate和fixup的公有方法: virtual State validate(QString &, int ...

笃行致远 8853

QIntValidator类的使用示例

通过合理地使用验证器,我们可以确保用户输入的数据符合我们的预期,并提供良好的用户体验。如果您有任何疑问,请随时提问!在上述示例中,我们创建了一个简单的应用程序,包含一个QLineEdit对象和一个QIntValidator对象。这是一个完整的示例,展示了如何使用QIntValidator类验证用户输入的整数。通过限制输入的范围和使用验证器对象的其他方法,我们可以确保用户提供的数据符合我们的要求。如果用户输入的不是一个介于10和100之间的整数,那么QLineEdit将显示一个红色的提示框,表示输入无效。

DevCharm的博客 539

QIntValidator或QDoubleValidator详解及范围无效问题解决

QLineEdit自带的setValidator包含 QIntValidator, QDoubleValidator, QRegularExpressionValidator。但在使用过程中,QIntValidator和QDoubleValidator在限制整数或者小数时无法正确应用。

danshiming的博客 6697

如何使用JMeter进行大模型的压力测试?

使用JMeter进行大模型的压力测试,核心是通过模拟高并发请求,测试大模型在极限负载下的性能表现(如响应时间、吞吐量、错误率、资源瓶颈等)。通过以上步骤,可系统性评估大模型在高压下的性能极限,为优化模型(如量化、蒸馏)、扩容硬件(增加GPU)或调整接口限流策略提供数据依据。)、请求方式(POST)、认证方式(API Key放在Header)、请求参数(作用:避免瞬间高压压垮系统,更精准找到瓶颈点。等)、响应格式(同步/流式)。需获取:API地址(如。通过CSV文件引入不同。

alankuo的专栏 789

STM32H7 FOC控制时序优化与PWM中点更新策略

在永磁同步电机(PMSM)的磁场定向控制(FOC)系统中,控制时序精度是决定电流环带宽、观测器收敛性与动态响应能力的基础要素。其核心在于理解PWM生成、ADC采样与控制计算三者之间的硬件级时间耦合关系——尤其在中心对齐模式下,标准更新机制引入的半周期延迟会破坏电压-电流瞬时映射,导致滑模观测器失配与高频相位滞后。通过将PWM更新事件绑定至重复计数器(RCR)清零点,可实现控制指令在开关周期中点生效,使等效电压矢量中心与计算时刻严格对齐。该策略显著提升系统确定性,为20 kHz以上高频电流环提供物理支撑,并广

flink9streamer的博客 857

PyQt5之QLineEdit控件与校验器QValidator

Qvalidator常用来设置输入框的合法性,当合法时,才能成功输入并显示到输入框。 QValidator就是一个抽象类,其子类QIntValidator、QDoubleValidator分别用来设置合法int和合法Double,而还有一个子类QRegExpValidator是用来结合正则表达式,判断合法性。 以下代码是限制IP和port的输入 以及一个限制输入浮点数的例子: 1 2 3 4 5 6 7 8 9 10 ..

sinat_41292836的博客 2430

PaddleOCR转ONNX模型实战:5分钟搞定中文OCR推理部署(附完整代码)

本文详细介绍了将PaddleOCR模型转换为ONNX格式并进行高效推理部署的完整实战方案。通过Paddle2ONNX工具实现模型转换,利用ONNX Runtime构建跨平台推理引擎,涵盖环境配置、模型优化、批量处理及多平台部署等关键步骤,显著提升中文OCR在边缘设备上的推理性能。

weixin_29051811的博客 616

【GUI-pyqt5】QLineEdit类

完善3.5.3案例,为密码文本框添加明文和密文切换按钮。要求:点击按钮后,将文本框A中的内容复制到文本框B中。完善3.6.3案例,为账户设置文本框,设置补全候选项。完善3.3.3案例,为密码文本框加上清空按钮。创建一个窗口,添加两个文本框和一个按钮。创建一个窗口,添加两个文本框和一个按钮。根据用户已经输入的字符串,快速联想补全。完善3.7.3案例,添加内容长度限制。设置输出模式,来适应不同的应用场景。完善3.3案例,增加占位提示文本。通过代码来控制输入文本内容。限制用户在文本框中输入内容。

qxj2422640226的博客 1876

昇腾910安装驱动出错,降低Centos7.6的内核版本

Centos7.6 启动内核修改,解决昇腾910安装驱动错误的问题。

深蓝 3300

音频降采样系数

如果需要把8K, 16K, 32K, 48K采样率的音频数据降为4K的音频数据, 最简单的方法根据降频倍数来取点, 但是线性度不好. 另一种线性度好一点的方法是: 取适当个数的点数, 各点乘以各自点的系数, 然后相加取平均值. 降频倍数与系数的关系如下: 2倍:     {0.3, 0.4, 0.3} 4倍:    {0.15, 0.2, 0.3, 0.2, 0.15} 8倍:   {0

joans123的专栏 4646

PYQT5移除QValidator校验器的方法

PYQT5取消QValidator校验器的方法 以QLineEdit为例,当想把输入框设置的QIntValidator整型输入校验器取消时,提供给大家一个思路。 QT手册的取消方法是给函数传入值等于0的QValidator对象,而PYQT5面临的问题是无法实例化这个对象,因此我们需要使用间接的方式 这时,注意到手册里提及的初始设置没有输入校验器,因此解决思路如下: 在没有给QLineEdit组件设置校验器之前获取其自带的无限制校验器。 validator = QLineEdit.validator()

gwz0340的博客 790

信创那些事儿——Spring Boot中集成东方通中间件(TongWeb)

在Spring Boot中集成东方通中间件(如TongWeb作为Servlet容器)通常涉及几个步骤,但需要注意的是,TongWeb本身是一个独立的Java EE应用服务器,而不是像Tomcat那样可以直接嵌入到Spring Boot应用中的中间件。因此,集成通常意味着将Spring Boot应用打包为WAR文件并部署到TongWeb服务器上。

来北欧写代码 6490

PyQt5 QLineEdit校验器限制输入

PyQt5 QLineEdit校验器限制输入

weixin_48668114的博客 1775

Calibre LVS效率翻倍秘籍:用Hierarchical Flow处理亿级晶体管设计的5个关键阶段

本文详细解析了如何利用Hierarchical Flow技术提升Calibre LVS在亿级晶体管SoC设计中的验证效率。通过五个关键阶段的分层验证流程,包括顶层抽象验证、模块级独立验证等,可显著降低内存占用40-60%,缩短迭代周期50-70%,特别适用于SMIC等先进工艺节点。文章还分享了算力资源优化、并行化处理等实战技巧,帮助工程师应对大规模芯片验证挑战。

sam99的博客 768

OCR技术解析:用Tesseract和PaddleOCR识别文本

OCR技术解析:用Tesseract和PaddleOCR识别文本 ,人工智能,计算机视觉,大模型,AI,光学字符识别(Optical Character Recognition,简称 OCR)是一项将图片、扫描件等文档中的文字信息转换为可编辑文本的技术。在数字化时代,OCR 技术广泛应用于文档处理、车牌识别、身份证识别、古籍数字化等领域,极大地提高了文字信息处理的效率。Tesseract 和 PaddleOCR 是两款极具代表性的 OCR 工具。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

PyQt5 基本语法(四):输入控件

文章目录2、 输入控件(一)2.1 纯键盘2.1.1 QLineEdit2.1.1.1 描述2.1.1.2 控件创建2.1.1.3 输出模式2.1.1.4 提示字符串2.1.1.5 清空按钮2.1.1.6 添加操作行为2.1.1.7 自动补全2.1.1.8 输入限制2.1.1.8.1 语法2.1.1.8.2 掩码验证2.1.1.9 案例:用户登录框2.1.1.10 判断文本编辑状态2.1.1.11 光标控制2.1.1.12 文本边距设置2.1.1.13 对齐方式2.1.1.14 常用编辑功能2.1.1.15

一个专注于机器学习基础与实战的技术博客,内容涵盖算法推导、模型实现、数学原理与代码实践。用通俗的语言解析复杂概念,记录学习过程中的思考与总结,适合机器学习爱好者和从业者参考。 1331

深度学习工具包 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")

pyqt4文档阅读(10):QValidator

QValidator

ljhandlwt 1645

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

PyQt 单行文本控件QLineEdit

【代码】PyQt 单行文本控件QLineEdit。

青衫背剑远游客的博客 909

PyQt 重写QLineEdit实现动态LineEdit源码分享

本文分享了基于PyQt6实现的动态LineEdit控件源码,该控件具有以下特点: 动态占位文本效果:当获得焦点或输入内容时,占位文本会平滑过渡到上浮位置 动态边框动画:输入框边框会根据控件状态变化呈现动画效果 自定义光标闪烁效果:通过定时器实现自定义光标闪烁动画 支持多种自定义颜色:可设置边框、文本和选中区域的颜色 实现核心使用了QPropertyAnimation动画框架,通过自定义Q_PROPERTY属性实现平滑过渡效果,同时考虑了绘制安全性和性能优化。该控件可直接集成到PyQt6项目中。

本博客分享软硬件一体化开发实战。硬件涵盖 PCB 设计、STM32 等 MCU 底层开发;软件包含 C++、Rust,Qt/QML、PyQt、Slint、TouchGFX、LVGL 各类 GUI 框架。方便软硬件开发者查阅学习。欢迎关注! 1048

QLineEdit控件

1、设置不可编辑 setReadOnly(false); //或 setEnabled(false); //或 setFocusPolicy(Qt::NoFocus);//无法获得焦点,自然无法输入,其他文本控件类似 //或 hasAcceptableInput(false); 2.setPlaceholderText()设置提示文字 搜索输入框,没有输入任何字符时,显示“搜索”,对用户输入作相关提示。 3、密文输入 setEchoMode(QLineEdit::Password); 4、输入格式控制;可以

yinsizhilian的博客 1456

QLineEdit标签的输入(校验器)(2019/09/05)

“”" QLineEdit标签的输入(校验器) 如限制只能输入整数、浮点数或满足一定条件的字符串 “”" from PyQt5.QtWidgets import * from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegExpValidator from PyQt5.QtCore import QRegExp import sys c...

weixin_42394925的博客 517

PyQt5 QLine-Edit验 证器的使用

from PyQt5.Qt import * import sys import math #设置验证器 class AgeVadidator(QValidator): def validate(self, input_str, pos_int): print(input_str,pos_int) #判定 #结果字符串,应该全部都是由一些...

u013934107的博客 749

使用自定义的QValidator实现在QLineEdit中自动为数字添加逗号分隔

这个类继承自QValidator,它用于创建一个自定义验证器,可以在输入时自动格式化文本。validate方法input_str = input_str.replace(',', '') # 去掉已有的逗号try:num = int(input_str) # 尝试转换为整数。

小仙女的博客 635

PyQt5之QLineEdit 验证器

##############################################限制输入内容的 性质,比如只能输入数字(电话号码) # # 现在需求: # 给文本编辑器设置验证器, # 限定ID只能是数字,范围为18--180 # 当输入非数字则不显示, # 当输入数字小于18时,展示18 # ...

瓜地考拉 1757
上一篇: PyQt5综合实践(二)PyQt5之QLineEdit控件与回显模式(EchoMode)
JH_会飞的鱼
博客等级 码龄15年 9粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值