使用Qt访问Python Web服务 !

超全!Python图形界面框架PyQt5使用指南! Pyside6:Pyside是QT公司官方提供的Python包,上一版本为Pyside2,对应的是QT5,最新版命名规则进行了调整,更改为Pyside6,对应的是QT6版本。将刚才编写的PyQt5的代码(demo.py和Weather.py)拖到src/main/python文件夹下,删除原有的main.py,并将demo.py修改为main.py。Tkinter:Python内置的GUI框架,使用TCL实现,Python中内嵌了TCL解释器,使用它的时候不用安装额外的扩展包,直接import,跨平台。.. 阅读详情

 本次主要介绍一种Qt提供的访问 Web URL 的方法—— QNetworkAccessManager 。

平台:ubuntu14.04   Qt Creator 3.5.1   python2.7

简单说下应用场景:Python资源共享群:484031800

 

一般的智能相机在传输图片时一般使用FTP协议,后来的相机也使用 HTTP 传输图片,在 Qt 中获取 HTTP 传输的图片则可以使用 QNetworkAccessManager 。

程序也比较少,直接贴代码:

#include "widget.h"

#include "ui_widget.h"

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

//请求python服务数据

mp_clsManager = new QNetworkAccessManager(this);

connect(mp_clsManager,SIGNAL(finished(QNetworkReply*)),

this,SLOT(slot_replyFinished(QNetworkReply*)));

}

Widget::~Widget()

{

delete ui;

}

void Widget::slot_replyFinished(QNetworkReply *reply)

{

//在槽中接收python服务信息

if(reply->error() == QNetworkReply::NoError)

{

QString str(reply->readAll());

qDebug() << "str is :" << str;

}

}

void Widget::on_pbn_sendMsg_clicked()

{

QString postRequest = QString("http://%1:8080/hello?str=你好,大皮")

.arg("localhost");

mp_clsManager->get(QNetworkRequest(QUrl(postRequest)));

}

连接信号和槽,在槽中get请求的的内容。最开始用的时候是 Qt 如何获取网页数据,也就是对应的 HTTP 协议。

点击Sendmsg按钮, post 请求。 

使用python启动一个简单的web服务器 使用python启动一个简单的web服务器目录结构导入Flask模块app1.py 目录结构 导入Flask模块 pip install -U Flask app1.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World1!' if __name__ == '__main__': app.run() 启动项目之后,访问 htt 阅读详情

相关推荐

Python QT 之PySide6简单入门

从 Tools -> External Tools -> PySide6_Designer 打开 QT Designer。④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)① 2000多本Python电子书(主流和经典的书籍应该都有了)③ 项目源码(四五十个有趣且经典的练手项目及源码)⑤ Python学习路线图(告别不入流的学习)② Python标准库资料(最全中文版)

2401_84585316的博客 1056

QT调Python

记一次使用QT调用python。这次测试并不顺利,其中遇见很多坑,好在最终实现了有任何疑问和想法,欢迎在评论区与我交流。

weixin_42745647的博客 3901

【Qt】使用Qt实现Web服务器(十):前端基础

本人对HTML元素不熟悉,利用QtWebApp加载静态页面来熟悉下HTML元素。

郭老二 1267

使用QT搭建轻量级WEB服务器,支持文件及文件夹下载

最近需要做一个QT上位机,在里面搭建一个小的WEB服务器,主要是用于wget下载升级使用。 查询了各种资料,最终选择了QtWebApp。这个框架对我来说足够用了。 搭建的过程主要参考了[QtWebApp的使用] (https://blog.youkuaiyun.com/weixin_41001497/article/details/108317463) 这个文章讲的非常清楚。 下面是重点 由于我主要是用来下载升级使用,所以文件下载功能是重点。但在调试的时候,发现服务器只能下载单个文件,无法下载文件夹。 源代码如下: /

weixin_48465965的博客 3472

QT上位机开发(Web API联调)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在工厂里面,一条流水线,或者说一条生产线,常常是由很多家的产品组合在一起,共同完成产品的生产和制造的。这里面有不同供应商的软件,也有集成商的软件,甚至有生产厂家it部门自己开发的软件,那么把这些软件都集中系统,就需要通过网络的方法打开彼此之间的链路。这里面可以是数据库访问的方式,当然也可以是web api的方式。 今天我们就来讨论下,如果是webapi,应该怎么处理

嵌入式-老费,一个分享专业嵌入式知识的blog 1931

QT集成web服务器

QT集成Web服务器,可用于开发加载html数据解析,支持文件上传,文件下载,模版加载,等功能。QT集成Web服务器,可用于开发加载html数据解析,支持文件上传,文件下载,模版加载,等功能。

WebSocket

WebSocket如何实现通信 websocket简介 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 在 WebSocke...

qq_41562031的博客 557

物理小白也能懂的PINN指南:用Python给神经网络注入‘物理常识‘

本文为物理小白提供了一份通俗易懂的PINN入门指南。通过生活化类比和Python实战,详细讲解了如何将物理定律作为约束注入神经网络,使其具备“物理常识”,从而在数据稀缺时也能做出符合规律的预测。文章以热传导方程为例,手把手教你从零构建物理信息神经网络。

open4的博客 349

Qt与Web混合开发

这篇文章,会先整体介绍一下Qt的各种Web方案,再提供简单的Demo,并做一些简要的说明。之后的一篇文章,会通过一个Web控制Qt端小车的案例,来做进一步讨论。

hw5230的博客 3083

全志 mipi屏幕和触摸驱动调试记录

mipi屏幕与触摸调试记录

u011996684的博客 3221

实战拆解:RAG vs Agent在金融风控中的性能对比

2024年上半年我帮某华东地区城商行做零售交易反欺诈系统升级时,技术团队曾发生过一次激烈争论:一派认为应该优先上RAG(检索增强生成)方案,成本低、落地快、合规性好;另一派坚持要上Agent(智能体)方案,推理能力强、能应对复杂新型欺诈。最终我们做了完整的AB测试,结论是两者没有绝对的优劣,只有场景适配的差异:RAG适合高并发、低时延的实时风控场景,Agent适合低并发、高准确率要求的事后核查/大额审批场景,两者结合的 hybrid 方案能覆盖95%以上的风控需求。本文我会结合真实项目的测试数据,从核心概念

AI天才研究院 252

hello大皮——使用Qt访问Python Web服务 (使用Qt获取网页数据)

本次主要介绍一种Qt提供的访问Web URL的方法——QNetworkAccessManager。 平台:ubuntu14.04 Qt Creator 3.5.1 python2.7 简单说下应用场景: 一般的智能相机在传输图片时一般使用FTP协议,后来的相机也使用HTTP传输图片,在Qt中获取HTTP传输的图片则可以使用QNetworkAccessManager。...

Pou光明的博客 585

如何获取SAP BTP账户及BAS启用

返回到 Service Marketplace 点击SAP Business Application Studio 然后go to Application。进入子用户的OverView里面找到Entitlements添加SAP Business Application Studio。注意:在选购BTP免费环境的时候,使用人要选公司才可以成功。在完成上述操作后,就可以登陆Cockpit。这里有SAP官方的BTP试用的手顺链接。配置权限※我绑定的是登录时的邮箱。※过程中有问题可以在评论区讨论。

wangshulong2013的博客 725

qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面

qt界面嵌入web 当我第一次听说WebAssembly以及使用Qt创建Web用户界面的可能性时(就像在普通C ++中一样),我决定更深入地研究该技术。 我的开源项目Pythonic完全基于Python(PyQt),并且在工作中使用C ++。 因此,这个最小化,简单易懂的WebAssembly教程在后端使用Python,在前端使用C ++ Qt WebAssembly。 它针对像我一样不熟悉...

cuml0912的博客 2155

手把手教你理解瑞萨RH850芯片的HSM:从硬件隔离到软件中断通信

本文深入解析瑞萨RH850芯片的HSM架构,从硬件隔离到软件中断通信的完整实现。通过详细讲解HSM的硬件组件、启动流程、核间通信机制及安全服务实现,帮助开发者掌握芯片级安全技术,提升汽车电子和工业控制领域的安全防护能力。

weixin_33925615的博客 381

AD22等长布线规则

本文介绍了PCB布线中实现信号线等长的详细操作步骤:1.创建网络类(NetClass),将需要等长的信号线归入同一组;2.设置高速布线规则(High-SpeedRule),定义等长容差等参数;3.进行交互式等长布线(InteractiveLengthTuning),使用蛇形线调整线长;4.实时调整与最终检查,确保所有网络满足等长要求。文中还提供了实用技巧,如使用快捷键调整蛇形线参数、为关键信号设置更严格规则等。操作需在PCB设计软件中完成,通过统一管理、规则设置和精确调整来实现信号同步传输。

whm128的博客 1558

使用python加载QT Designer创建的UI界面

现在python语言越来越火了,它可以运用好多种领域,包括但不限于:云基础设施、DevOps、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了Web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等一系列的领域。可以说使用python开发,成为了当下以及以后几年的一种趋势。 介...

浮生若梦的博客 5812

深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?

首先介绍 AI 时代 Java 开发框架选择背景,接着对比两者功能特性(Spring AI 的生态集成与标准化设计、LangChain4j 的多模型适配与提示工程)、应用场景(企业级系统改造与创新产品开发)、开发体验(学习成本与调试工具)、生态扩展(Spring 商业支持与 LangChain4j 开源社区)、性能安全(企业级优化与自主安全实现)及成本趋势(短期投入、长期回报与技术演进),最后给出选型建议与混合架构方案。

博客 5446

【QT教程】QT6与Python

QT6与Python的结合QT6与Python的结合Qt 是一个跨平台的 C++图形用户界面应用程序框架,用于开发 GUI 应用程序,也可以用于开发非 GUI 程序,如控制台工具和服务器。Qt 被广泛用于开发桌面、移动和嵌入式系统应用程序。Qt 6 是 Qt 系列的第六个主要版本,它带来了许多新特性和改进,包括对 C++20 的支持、更好的性能、改进的构建系统等。Python 是一种高级编程语言,广泛用于各种应用程序开发,包括 web 开发、数据科学、人工智能等。

QT性能优化QT原理源码QT界面美化 5912

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

QT使用RabbitMQ_qt rabbitmq

rabbitmqctl list_users // 列出当前系统的用户rabbitmqctl list_user_permissions [用户名] // 查看用户权限rabbitmqctl delete_user [用户名] // 删除用户rabbitmqctl change_password [用户名] [密码] // 修改用户密码rabbitmq-plugins enable rabbitmq_management // 开启web远程管理界面。

2301_82241942的博客 1068

STM32F407中文手册

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

python界面开发webview_使用Python和PyQT创建Web浏览器

第一行定义回调或事件,如果一个人按下enter(returnPressed),它将调用函数loadURL。在本教程中,我们将使用Python构建一个webbrowser。我们将使用具有Web组件的PyQT库。在本教程中,您将学习如何将所有组件连接在一起。我们将使用默认的渲染引擎,而不是在本教程中滚动一个。PyQt安装安装所需的包:sudo pip install python-qt4sudo ap...

weixin_39914868的博客 2015

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用浏览器控制服务器上的 Python 程序

编写一个 Qt 控件作为图形用户界面(交互式地更改视图、将数字放入表格、设置复选框、在不同层之间切换——从未在 Python 中做过如此复杂的事情,但有一些 IDL 事件处理等方面的经验),设置具有以下功能的数据类:创建具有给定约定的 ASCII 文件,并将文件通过 FTP 发送到远程服务器。但是,由于我的公司是一群 Windows 用户,每个人都在自己的个人台式机上工作,因此在每台单独的计算机上安装 Python 和所有必要的库将是一件痛苦的事情。因此,将其放到服务器上是有意义的。

D0126_的博客 329

C++语言的QT写软件界面,结合python深度学习模型的综合应用处理方案

"部署"(Deployment)是软件开发过程中的一个关键步骤,指的是将开发完成的应用程序或系统从开发环境迁移到生产环境,使其可以被终端用户或其他系统访问和使用。简单来说,部署就是将你的软件放到一个可以让用户访问的地方。环境选择本地部署:在本地机器上运行应用程序,通常用于开发和测试。服务器部署:在专用的服务器或虚拟机上运行应用程序,使其可以被外部用户访问。云部署:使用云服务提供商(如 AWS、Azure、Google Cloud 等)提供的资源来运行应用程序。配置。

随机指定的博客 2152

将Python机器学习模型集成到C++ Qt客户端应用程序中|Qt调用python详解

有几个不同的选项可以将你的Python机器学习模型集成到你的C++ Qt客户端应用程序中。通过嵌入式Python部署方法,目标机器(用户的机器)无需单独安装Python。这是因为所有必要的Python组件都应该被包含在你的应用程序中,作为该应用程序的一部分进行分发。这意味着Python解释器和所有必要的库、模块及其他依赖都被静态链接到应用程序或以其他形式捆绑在一起,用户不需要执行额外的安装步骤。

Yaoyao2024的博客 4166

【开源公告】多平台Web自动化测试框架QT4W开源

QT4W (Quick Test for Web)是使用Python开发的Web自动化框架,是QTA(QTA是一套集成面向多端多平台的自动化测试解决方案,包括QT4A,Q...

腾讯开源 1092
上一篇: Python登录豆瓣并爬取影评!
下一篇: 使用 Python 处理 JSON 格式的数据!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值