qt工程,windows到mac的移植

解构复杂技术项目:从QT音频引擎移植案例掌握跨平台开发与代码分析 在软件开发中,跨平台移植和遗留项目重构是常见的工程挑战,涉及对多技术栈整合项目的系统性分析。其核心原理在于理解不同平台(如Windows、Linux、嵌入式系统)在编译器、系统API、硬件抽象层和第三方库依赖上的差异性,并通过构建平台抽象层来统一接口。掌握这项技术能显著提升代码的复用性和可维护性,对于开发跨设备应用、维护历史代码库以及进行技术选型评估具有重要价值。典型的应用场景包括将桌面应用程序迁移到嵌入式设备、整合不同领域的专用库(如音频处理与图形界面),以及复活缺乏文档的“半成品”项目。本文以一次涉及Q 阅读详情

最近在搞mac,把以前windows的工程移植到mac上,之前windows使用的QT开发,网上搜索了一下qt是支持mac的,于是就动手搞起来。

1.mac上qt环境搭建

先去qt官网下载一下mac版的qt库,然后安装,可以参考

Qt开发环境之Mac OS部署

注意,qtcreator和release是必须的,debug看你要不要调试了,嘿嘿,一般都下吧。


2.mac上用qt编译运行工程

打开qtcreator,创建一个QT Quick Gui的工程,然后build,你可以在“项目”里设置一下输出路径,编译通过后会在输出路径下多出***.app这个东西,app其实是个目录,具体可以参考一下网上介绍的目录结构。最后在***.app/Contens/MacOs目录下会多出一个可执行程序,那才是真正的程序!!




一篇学会QT使用--设计师自定义控件(QT自定义控件)(二) 文章目录工程编译测试插件使用 接上文:一篇学会QT使用–设计师自定义控件(QT自定义控件)(一) 上文讲到了如何利用UI界面对自定义插件显示效果进行编辑,接下来我们继续学习。 工程编译 进入工程编辑界面,我们的工程树如图所示: 此时我们直接release看一下,工程会有报错 为解决这个报错,我们需要对qip.h添加相关宏和头文件。 QDESIGNER_WIDGET_EXPORT 和 <QtUiPlugin/QDesignerExportWidget> 添加后,qip.h文件内容如下 #i 阅读详情

相关推荐

Qt项目结构深度解析:从.pro文件到模块化架构的工程化实践

在C++跨平台应用开发中,项目结构设计是构建可维护、可扩展软件系统的基石。其核心原理在于通过合理的目录组织和构建配置实现关注点分离,从而提升代码复用性和团队协作效率。这一工程实践的技术价值在于,它能显著降低大型项目的维护成本,并适应从原型到复杂产品的演进需求。在Qt框架的应用场景下,.pro文件作为项目构建的蓝图,与模块化源码架构共同构成了健壮项目的基础。通过深入理解Qt项目结构,开发者可以避免常见的工程陷阱,例如资源管理混乱和平台适配困难,从而构建出结构清晰、易于部署的跨平台应用程序。本文聚焦于.pro文

weixin_30299709的博客 586

QT打包mac APP

QT Creator构建项目成功后,在终端输入以下命令: cd /Users/xxx/Qt5.12.9/5.12.9/clang_64/bin

AwoCT的博客 1003

QT中键盘钩子的使用

在Windows平台开发时,如果我们需要监听键盘的操作或者屏蔽一些键盘操作时,比较容易的办法就是使用Windows 自带的API,包含SetWindowsHookEx、CallNextHookEx、UnhookWindowsHookEx。2.windows.h文件的导入,QT已经自带一些预定义宏来标识系统类型,如Q_OS_WIN代表windows系统,Q_OS_MAC代表MAC OS,这些内容可以查看帮助文档。可以想到的办法就是使用条件编译的方式,让我们的软件能够在Windows平台下先支持键盘钩子。

QtCompany的博客 394

Qt 学习(一)Mac下Qt Creator安装以及项目创建

Mac下Qt Creator安装、项目创建以及无法打开窗体问题解决

weixin_41013492的博客 8146

twine-app-builder:免费自动生成Windows和macOS版本的Twine游戏!

麻绳App Builder 该项目将使用您现有的基于浏览器的游戏,并自动为Windows和macOS生成一个独立的桌面版本。 它的主要是使用 (1和2), 和类的工具制作游戏,并制作适合在Steam或Itch等平台上发行的桌面版本。 但是您可能还会发现它的其他用途! 它适用于任何输出为HTML / JavaScript / CSS的游戏。 要使用它,您需要对git和GitHub有基本的了解。 制作游戏所需的一切都不需要其他技术专业知识! 对于技术专心的人:这使用GitHub Actions将您的游戏捆绑到一个预先编写的Electron应用程序模板中,然后为Windows和macOS构建该模板。 如何使用 接下来是更详细的说明,但是这是您要执行的操作的概览: 分叉此git repo,并向其中添加游戏的index.html文件(和所有美术资产)。 当您将这些更改提交到git并将其推

利用Sigrity的SPEED2000进行时域电源噪声分析

SPEED2000进行时域电源噪声分析

ZHENGSA的博客 3622

qt移植windows程序并在mac下打包

本文主要记录qt在windows下开发的项目,如何移植到mac上,并完成打包成dmg

墨、砚 4210

基于Pixhawk与OpenMV的无人机视觉引导精准降落系统设计与实现

本文详细介绍了基于Pixhawk飞控与OpenMV视觉模块的无人机精准降落系统设计与实现。系统通过OpenMV识别Apriltag标签,结合MAVLink通信将视觉数据发送给Pixhawk,实现厘米级精准降落。文章涵盖硬件连接、软件配置、核心代码逻辑解析及实战调试技巧,为无人机自动充电、物流配送等场景提供可靠解决方案。

weixin_29189377的博客 320

window+QT项目,在编译mac版本和ios版本

window+QT项目,在编译mac版本和ios版本

Li丶Chong的博客 2475

OpenWRT端口转发与NAT环回冲突的排查与解决

本文详细解析了OpenWRT路由器中端口转发与NAT环回功能冲突导致的内网访问故障。通过生活化类比阐明两者工作原理,提供从基础诊断到内核参数调整、LuCI选项配置及手动编写iptables规则的多套解决方案,并给出进阶排查思路,帮助用户彻底解决内网无法通过公网地址访问服务的常见问题。

weixin_29243279的博客 507

R语言maftools包实战:5分钟搞定TCGA癌症突变数据可视化(附完整代码)

本文详细介绍了如何使用R语言的maftools包快速解析和可视化TCGA癌症突变数据。通过实战演示,从环境搭建、数据导入到核心可视化(如瀑布图、棒棒糖图)和深度统计分析(如生存分析、突变特征),帮助生物信息学研究者高效完成癌症基因组学分析,大幅提升从原始MAF数据到发表级图表的效率。

weixin_29054399的博客 189

Qt项目移植到mac上一些问题汇总

【代码】Qt项目移植到mac上一些问题汇总。

weixin_41605683的博客 989

大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!)

智慧物流大数据平台 文章目录智慧物流大数据平台一、项目背景二、逻辑架构三、解决方案技术亮点:数据流转四、项目的技术选型4.1流式处理平台4.2 分布式计算平台4.3 海量数据存储框架软件版本总结 一、项目背景 本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖

weixin_48143996的博客 6431

qt程序 从Mac移植到windows 并打包程序

QT打包windows程序和mac差不多 都是先导出release版本,然后使用工具集合库,最后打包成单个文件。 移植 移植过程需要注意几点: windows文件默认是gb2312,需要先保存成utf8才可以。否则带有汉子的代码会产生大量错误。windows编辑器也必须设置文件格式。首先在工具-&amp;gt;选项中设置utf8,然后在编辑-&amp;gt;encoding 中设置当前文件为utf8(只设置有...

失业求捞! 5604

强化学习(Reinforcement Learning)与动态系统控制方法

一个具体的 RBC 的例子是自动驾驶汽车中的交通规则。在训练过程中,代理通过与环境交互获取奖励信号,并学习如何在某个状态下采取最佳的行动,以最大化长期的累积奖励。在化工过程中,通过对生产过程中的温度、压力、流量等参数的控制来实现产品的质量和产量的提高。需要注意的是,以上代码只是一个简单的示例,实际的 MPC 系统可能会更加复杂,并包含更多的模型预测和控制算法来实现更复杂的控制任务。需要注意的是,以上代码只是一个简单的示例,实际的自动驾驶汽车系统可能会更加复杂,并包含更多的规则和条件来确保安全行驶。

AI天才研究院 4065

【即插即用模块】注意力篇 | MICCAI 2023 | MFE:多尺度特征提取,告别固定感受野,猛涨2个点!

本文提出一种用于低分辨率乳腺癌病理图像超分辨率与分类的网络SHISRCNet。针对现有方法处理低分辨率图像效果差、感受野固定等问题,设计了多特征提取模块(MFE),通过多速率空洞卷积覆盖全尺度感受野(局部到全局),结合递进残差连接和动态权重融合机制,实现自适应多尺度特征增强。实验表明,该模块在超分辨率任务中PSNR提升近2个点,分类准确率显著提高。代码提供详细注释,支持即插即用,适用于各类多尺度视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 207

SDDC的Windows初体验-QT篇

前言 如果熟悉爱智和看过我之前文章的朋友见到这篇文章一定会有很大疑问,SDDC 作为智能设备发现控制协议,怎么会用在 windows 上? 这一切还是源自于我巨大的脑洞,因为这段在搞 Windows 开发,突发奇想能不能把电脑也接入到爱智上,于是就把嵌入式设备使用的 SDDC 协议移植到了 Windows 上,本文就介绍下基于 QT 移植的 libsddc 库,其实我还移植到了 VS2022 上了,这个之后再介绍吧。 软硬件选择 这里使用 windows 开发,除了电脑也不需要其他额外的硬件了。 软件的话

灵感桌面的博客 376

Calibre LVS 问题解析

LVS常见问题与解决办法

m0_61544122的博客 2万+

【开源软件移植】Qt 开源软件 DiffPDF 适配鸿蒙 PC 全流程实战 —— 从交叉编译到真机跑通

本文记录了将Qt开源软件DiffPDF移植到鸿蒙PC的全过程。作者首先面临Qt4到Qt5的版本适配问题,通过使用Debian维护的Qt5补丁版本解决。随后详细介绍了交叉编译的完整流程,包括环境配置、三方库编译(poppler、fontconfig等)以及Qt-OHOS应用的特殊运行机制。重点解决了编译过程中遇到的工具链兼容性、依赖库禁用、符号缺失等问题,最终成功在鸿蒙PC上运行DiffPDF。文章提供了可复现的操作步骤和源码仓库,为Qt应用鸿蒙化提供了实用参考。

一键难忘的博客 4万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

1.QT-第一个程序 Hello QT , 以及QT creator介绍

第一个程序 -Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #include <QPushButton> int main(int argc, char* argv[]) {   QApplication a(argc, argv); // Qapplica...

抵抗时间扭曲,坚持做一件有意义的事 1124

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Cocos2dx 把 glview 渲染到 Qt 控件上(Mac 环境)

本文原链接:http://www.cnblogs.com/zouzf/p/4423256.html   环境:Mac 10.9.2   Xcode5.1.1  Qt5.3  cocos2dx-2.2.4   项目基于 cocos2dx 2.x 源码二次封装后的框架进行开发,其中控件部分及相关的触摸事件传递机制等都改掉了;为了提高开发效率,项目还开发了一个 UI 编辑器用于可视化编辑 UI,...

weixin_34256074的博客 229

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

QT5.x应用在Mac OS X和Windows平台的发布过程

QT是一款非常牛逼的跨平台开发工具,目前可以开发Mac OS X、Windows、Linux、Android、iOS等平台的App。对于Android和iOS平台,发布相对容易,例如,Android平台是生成apk文件上传到Android设备的,所以直接安装apk文件即可。不过对于PC平台(Mac OS X、Windows和Linux)的应用,在发布时就显得麻烦些。本文主要介绍Mac OS X和W...

weixin_34396902的博客 131

QT笔记整理

sonar 3015 sonar 2081 宽带远场方位历程显示模块 PC1:硬定时程序TmCntSet PC2:文件推送程序fileserver PC3:DSP接收程序 PC4:HY_OceanDisplay QTNokia内部培训资料.pdf 精通Qt4编程 http://qt.nokia.com访问不了? http://qt-project.org/ QT是

u010401391的专栏 1347

dump系列(3)Qt使用Google Breakpad或Crashpad捕获程序崩溃报告

Google breakpad是一个非常实用的跨平台的崩溃转储和分析模块,他支持Windows,Linux和Mac和Solaris。由于他本身跨平台,所以很大的减少我们在平台移植时的工作,毕竟崩溃转储,每个平台下都不同,使用起来很难统一,而Google breakpad就帮我们做到了这一点,不管是哪个平台下的崩溃,都能够进行统一的分析。现在很多工程都在使用他:最著名的几个如Chrome,Firefox,Picasa和Google Earth。另外他的License是BSD的,也就是说,我们可以在商业软件中使

$firecat利白的代码足迹$ 6186

【开源软件移植】从 0 到 1:KDiff3 适配鸿蒙 PC 全流程实战 —— Qt5 交叉编译 + HAP 打包完整复现

本文详细记录了将开源软件KDiff3移植到鸿蒙PC(HarmonyOS NEXT)的全过程。作者选择了KDiff3 0.9.98版本进行移植,因其依赖体系简单(仅需Qt5 Core/Gui/Widgets/PrintSupport),且自带KDE API的伪实现,大大降低了移植难度。整个移植过程分为7个阶段:环境准备、源码下载、源码分析、构建脚本改写、交叉编译、产物验证和Runtime收集。文章重点介绍了环境配置、源码选型分析以及关键编译步骤,最终成功将KDiff3交叉编译为可在鸿蒙HAP工程中集成的lib

一键难忘的博客 5万+

Qt样式表深度解析:从CSS类比到绘制契约的工程实践

Qt样式表(QSS)并非网页CSS的简单移植,而是一套深度耦合Qt绘图管线的定制化机制。其核心原理在于接管控件的paintEvent流程,通过选择器匹配、属性解析与子控件委托绘制实现外观控制。技术价值体现在高保真UI还原、嵌入式HMI精细交互适配及跨平台主题一致性保障。典型应用场景包括工业人机界面的触摸反馈优化、医疗设备的高DPI字体/边框适配,以及跨Windows/macOS/Linux的统一视觉规范落地。本文聚焦QSS的本质约束、选择器陷阱、高DPI响应式写法及与QPainter协同模式,直击`bord

weixin_34121282的博客 397
上一篇: android MessageQueue,Looper和Handler(转载)
下一篇: mac上使用qt,进行输入法的开发
dinjay
博客等级 码龄18年 2238粉丝 22原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值