【Qt快速入门(六)】- QLineEdit按钮的使用
目录
- Qt快速入门(六)- QLineEdit按钮的使用
- QLineEdit按钮的使用
- QLineEdit的基本用法
- 1. 创建和设置文本
- 2. 获取输入文本
- 3. 清空输入文本
- 文本处理
- 1. 选择文本
- 2. 设置光标位置
- 3. 撤销和重做
- 输入验证
- 1. 输入掩码
- 2. 校验器
- 3. 输入限制
- 样式设置
- 1. 设置字体和颜色
- 2. 占位符文本
- 3. 密码输入
- 信号与槽机制
- 1.文本变化信号
- 2. 编辑完成信号
- 扩展功能
- 1. 自动完成
- 2. 上下文菜单
- 总结
Qt快速入门(六)- QLineEdit按钮的使用
QLineEdit按钮的使用
QLineEdit是Qt框架中用于文本输入的单行输入控件。它提供了丰富的功能,包括文本输入、文本验证、占位符提示、密码输入等。本文将详细讲解QLineEdit的使用,包括其基本用法、文本处理、输入验证、样式设置、信号与槽机制、扩展功能以及在Qt Designer中的使用。
QLineEdit的基本用法
QLineEdit控件可以通过Qt Designer设计界面,也可以通过代码动态创建和设置。以下是一些常见的用法示例。
1. 创建和设置文本
QLineEdit可以通过构造函数创建,并使用setText方法设置初始文本。
#include <QApplication>
#include <QLineEdit>int main(int argc, char *argv[]) {QApplication app(argc, argv);QLineEdit lineEdit;lineEdit.setText("Hello, World!");lineEdit.show();return app.exec();
}
在这个简单示例中,QLineEdit被创建并设置了初始文本“Hello, World!”。show方法用于显示控件。
2. 获取输入文本
可以使用text方法获取QLineEdit中的文本。
#include <QApplication>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>
#include <QMessageBox>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit lineEdit;QPushButton button("Show Text");layout.addWidget(&lineEdit);layout.addWidget(&button);QObject::connect(&button, &QPushButton::clicked, [&lineEdit]() {QMessageBox::information(nullptr, "Text", "You entered: " + lineEdit.text());});window.show();return app.exec();
}
在这个示例中,当按钮被点击时,会弹出一个消息框,显示QLineEdit中的文本。
3. 清空输入文本
可以使用clear方法清空QLineEdit中的文本。
#include <QApplication>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit lineEdit;QPushButton button("Clear Text");layout.addWidget(&lineEdit);layout.addWidget(&button);QObject::connect(&button, &QPushButton::clicked, [&lineEdit]() {lineEdit.clear();});window.show();return app.exec();
}
在这个示例中,当按钮被点击时,QLineEdit中的文本会被清空。
文本处理
QLineEdit提供了多种方法处理文本输入,包括选择文本、设置光标位置、撤销和重做等。
1. 选择文本
可以使用selectAll方法选择QLineEdit中的所有文本,使用setSelection方法选择特定范围的文本。
#include <QApplication>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit lineEdit;lineEdit.setText("Hello, World!");QPushButton selectButton("Select All");QPushButton partialSelectButton("Select Partial");layout.addWidget(&lineEdit);layout.addWidget(&selectButton);layout.addWidget(&partialSelectButton);QObject::connect(&selectButton, &QPushButton::clicked, [&lineEdit]() {lineEdit.selectAll();});QObject::connect(&partialSelectButton, &QPushButton::clicked, [&lineEdit]() {lineEdit.setSelection(7, 5); // Select "World"});window.show();return app.exec();
}
在这个示例中,按钮分别用于选择QLineEdit中的所有文本和部分文本。
2. 设置光标位置
可以使用setCursorPosition方法设置光标位置,使用cursorPosition方法获取当前光标位置。
#include <QApplication>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>
#include <QLabel>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit lineEdit;lineEdit.setText("Hello, World!");QPushButton cursorButton("Set Cursor Position");QLabel cursorPositionLabel("Cursor Position: 0");layout.addWidget(&lineEdit);layout.addWidget(&cursorButton);layout.addWidget(&cursorPositionLabel);QObject::connect(&cursorButton, &QPushButton::clicked, [&lineEdit, &cursorPositionLabel]() {lineEdit.setCursorPosition(5); // Set cursor position after "Hello"cursorPositionLabel.setText("Cursor Position: " + QString::number(lineEdit.cursorPosition()));});window.show();return app.exec();
}
在这个示例中,按钮用于设置光标位置,并显示当前光标位置。
3. 撤销和重做
可以使用undo和redo方法实现文本输入的撤销和重做功能。
#include <QApplication>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit lineEdit;QPushButton undoButton("Undo");QPushButton redoButton("Redo");layout.addWidget(&lineEdit);layout.addWidget(&undoButton);layout.addWidget(&redoButton);QObject::connect(&undoButton, &QPushButton::clicked, [&lineEdit]() {lineEdit.undo();});QObject::connect(&redoButton, &QPushButton::clicked, [&lineEdit]() {lineEdit.redo();});window.show();return app.exec();
}
在这个示例中,按钮用于撤销和重做文本输入操作。
输入验证
QLineEdit支持多种输入验证方式,包括输入掩码、校验器和输入限制。
1. 输入掩码
可以使用setInputMask方法设置输入掩码,以限制用户输入的格式。
#include <QApplication>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit phoneLineEdit;phoneLineEdit.setInputMask("(999) 999-9999"); // Phone number masklayout.addWidget(&phoneLineEdit);window.show();return app.exec();
}
在这个示例中,QLineEdit被设置为电话号码输入掩码,只允许用户输入指定格式的电话号码。
2. 校验器
可以使用QValidator类或其子类(如QIntValidator、QDoubleValidator和QRegExpValidator)设置输入校验器。
#include <QApplication>
#include <QLineEdit>
#include <QIntValidator>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit intLineEdit;QIntValidator intValidator(0, 100); // Only allow integers between 0 and 100intLineEdit.setValidator(&intValidator);layout.addWidget(&intLineEdit);window.show();return app.exec();
}
在这个示例中,QLineEdit被设置为只允许输入0到100之间的整数。
3. 输入限制
可以使用setMaxLength方法限制QLineEdit的最大输入长度,使用setReadOnly方法将QLineEdit设置为只读。
#include <QApplication>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit limitedLineEdit;limitedLineEdit.setMaxLength(10); // Limit input length to 10 charactersQLineEdit readOnlyLineEdit;readOnlyLineEdit.setText("Read-Only Text");readOnlyLineEdit.setReadOnly(true); // Set to read-onlylayout.addWidget(&limitedLineEdit);layout.addWidget(&readOnlyLineEdit);window.show();return app.exec();
}
在这个示例中,第一个QLineEdit被限制为最多输入10个字符,第二个QLineEdit被设置为只读。
样式设置
QLineEdit支持丰富的样式设置,包括字体、颜色、背景等。以下是一些常见的样式设置方法。
1. 设置字体和颜色
可以使用setFont方法设置QLineEdit的字体,使用setStyleSheet方法设置颜色和其他样式。
#include <QApplication>
#include <QLineEdit>
#include <QFont>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit styledLineEdit;QFont font("Arial", 14, QFont::Bold);styledLineEdit.setFont(font);styledLineEdit.setStyleSheet("color: blue; background-color: yellow;");layout.addWidget(&styledLineEdit);window.show();return app.exec();
}
在这个示例中,QLineEdit被设置为Arial字体、14号、加粗,文本颜色为蓝色,背景颜色为黄色。
2. 占位符文本
可以使用setPlaceholderText方法设置QLineEdit的占位符文本,提示用户输入内容。
#include <QApplication>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit placeholderLineEdit;placeholderLineEdit.setPlaceholderText("Enter your name...");layout.addWidget(&placeholderLineEdit);window.show();return app.exec();
}
在这个示例中,QLineEdit被设置为显示占位符文本“Enter your name…”。
3. 密码输入
可以使用setEchoMode方法设置QLineEdit为密码输入模式,以隐藏用户输入的内容。
#include <QApplication>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit passwordLineEdit;passwordLineEdit.setEchoMode(QLineEdit::Password);layout.addWidget(&passwordLineEdit);window.show();return app.exec();
}
在这个示例中,QLineEdit被设置为密码输入模式,用户输入的内容将以星号(*)显示。
信号与槽机制
QLineEdit提供了多种信号,用于处理文本变化、编辑完成等事件。
1.文本变化信号
textChanged和textEdited信号用于处理文本变化事件。
#include <QApplication>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>
#include <QLabel>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit lineEdit;QLabel textChangedLabel("Text Changed: ");QLabel textEditedLabel("Text Edited: ");layout.addWidget(&lineEdit);layout.addWidget(&textChangedLabel);layout.addWidget(&textEditedLabel);QObject::connect(&lineEdit, &QLineEdit::textChanged, [&textChangedLabel](const QString &text) {textChangedLabel.setText("Text Changed: " + text);});QObject::connect(&lineEdit, &QLineEdit::textEdited, [&textEditedLabel](const QString &text) {textEditedLabel.setText("Text Edited: " + text);});window.show();return app.exec();
}
在这个示例中,textChanged信号在文本变化时触发,textEdited信号在用户编辑文本时触发。
2. 编辑完成信号
editingFinished信号在用户完成编辑并按下回车键或失去焦点时触发。
#include <QApplication>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>
#include <QLabel>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit lineEdit;QLabel editingFinishedLabel("Editing Finished: ");layout.addWidget(&lineEdit);layout.addWidget(&editingFinishedLabel);QObject::connect(&lineEdit, &QLineEdit::editingFinished, [&lineEdit, &editingFinishedLabel]() {editingFinishedLabel.setText("Editing Finished: " + lineEdit.text());});window.show();return app.exec();
}
在这个示例中,editingFinished信号在用户完成编辑时触发,并显示编辑完成后的文本。
扩展功能
QLineEdit还支持一些扩展功能,如自动完成和上下文菜单。
1. 自动完成
可以使用QCompleter类实现QLineEdit的自动完成功能。
#include <QApplication>
#include <QLineEdit>
#include <QCompleter>
#include <QStringList>
#include <QVBoxLayout>
#include <QWidget>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);QLineEdit autoCompleteLineEdit;QStringList wordList = {"apple", "banana", "cherry", "date", "fig", "grape"};QCompleter completer(wordList);autoCompleteLineEdit.setCompleter(&completer);layout.addWidget(&autoCompleteLineEdit);window.show();return app.exec();
}
在这个示例中,QLineEdit被设置为支持自动完成,用户输入时会显示匹配的单词列表。
2. 上下文菜单
可以通过继承QLineEdit并重写contextMenuEvent方法自定义上下文菜单。
#include <QApplication>
#include <QLineEdit>
#include <QMenu>
#include <QVBoxLayout>
#include <QWidget>class CustomLineEdit : public QLineEdit {Q_OBJECTpublic:CustomLineEdit(QWidget *parent = nullptr) : QLineEdit(parent) {}protected:void contextMenuEvent(QContextMenuEvent *event) override {QMenu *menu = createStandardContextMenu();menu->addAction("Custom Action", this, SLOT(customAction()));menu->exec(event->globalPos());delete menu;}private slots:void customAction() {setText("Custom Action Triggered");}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;QVBoxLayout layout(&window);CustomLineEdit customLineEdit;layout.addWidget(&customLineEdit);window.show();return app.exec();
}#include "main.moc"
在这个示例中,QLineEdit被继承并添加了一个自定义的上下文菜单项。
总结
QLineEdit是Qt框架中功能强大且灵活的单行文本输入控件。通过详细了解QLineEdit的基本用法、文本处理、输入验证、样式设置、信号与槽机制、扩展功能以及在Qt Designer中的使用,开发者可以在实际项目中充分利用QLineEdit的优势,构建出丰富多样的用户界面。无论是简单的文本输入、复杂的格式验证还是自定义样式的高级输入框,QLineEdit都能满足开发者的需求,使得应用程序更加友好和易用。
相关文章:
【Qt快速入门(六)】- QLineEdit按钮的使用
目录 Qt快速入门(六)- QLineEdit按钮的使用QLineEdit按钮的使用QLineEdit的基本用法1. 创建和设置文本2. 获取输入文本3. 清空输入文本 文本处理1. 选择文本2. 设置光标位置3. 撤销和重做 输入验证1. 输入掩码2. 校验器3. 输入限制 样式设置1. 设置字体和…...
常用损失函数详解:广泛使用的优化约束方法
各类常用损失函数详解:广泛使用的优化约束方法 今天介绍下损失函数,先介绍下我常用的方法SmoothedL1,它是一个平滑的L1 penalty函数,用于处理约束violation。 标准的L1 penalty函数定义为: L 1 ( x ) { 0 , if x ≤ 0 x , if x > 0 …...
鸿蒙开发组件:【创建DataAbility】
创建DataAbility 实现DataAbility中Insert、Query、Update、Delete接口的业务内容。保证能够满足数据库存储业务的基本需求。BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑,依赖Insert、Query、Update、Delete接口逻辑,来实现数据的批量处理。…...

配电室数据中心巡检3d可视化搭建的详细步骤
要搭建配电室巡检的3D可视化系统,可以按照以下步骤进行: 收集配电室数据: 首先,需要收集配电室的相关数据,包括配电室的布局、设备信息、传感器数据等。可以通过实地调查、测量和设备手册等方式获取数据。 创建3D模型…...

TIME_WAIT的危害
前言 该文章主要讨论下TIME_WAIT的存在意义和潜在危害,以及解决措施。 具体内容 首先看一下下面这幅图 这幅图来自《TCP IP详解卷1:协议 原书第2版中文》TCP状态变迁图。 TIME_WAIT存在意义 可靠的终止TCP连接。 保证让迟来的TCP报文有足够的时间被…...

搜维尔科技邀您共赴2024第四届轨道车辆工业设计国际研讨会
会议内容 聚焦“创新、设计、突破”,围绕“面向生命健康、可持续发展的轨道交通系统” 为主题,从数字化、智能化、人性化、绿色发展等方面,探索轨道交通行业的设计新趋势及发展新机遇。 举办时间 2024年7月10日-12日 举办地点 星光岛-青岛融…...
智能中人类造成的风险、机器造成的风险、环境造成的风险
在使用智能技术时,可能会面临各种类型的风险。以下是一些可能的风险情况: 1、人类造成的风险 错误判断和决策:人类在使用智能系统时可能会因为各种原因做出错误的判断和决策,导致不良后果。人为错误:技术操作人员、维护…...
MYSQL基础查询
示例:user_profile iddevice_idgenderageuniversityprovince12138male21北京大学Beijing23214male复旦大学Shanghai36543female20北京大学Beijing42315female23浙江大学Zhejiang55432male25山东大学Shandong 查询所有列 select * from user_profile;查询…...
【Golang】Go 中的生产者-消费者模式
Go 中的生产者-消费者模式 来源:https://medium.com/@mm.nikfarjam/the-producer-consumer-pattern-in-go-cf97299a0320 文章目录 Go 中的生产者-消费者模式介绍关键组件在 Go 中的实现结论Go 中的生产者-消费者模式 介绍 生产者-消费者模式是处理大数据的最常见设计模式之一…...

【通过新能源汽车的智慧数字底盘技术看计算机的相关技术堆栈?以后是软硬结合的全能程序员的天下,取代全栈(前后端都会的全栈程序员)】
汽车的“智慧数字底盘”是一个综合性的技术平台,旨在提升车辆的性能、安全性和驾驶体验。它集成了多种先进的技术和系统,是全能程序员的必杀技! 1. 传感器技术 a. 激光雷达(LiDAR) 用于生成高分辨率的3D地图&#…...

Python网络爬虫4-实战爬取pdf
1.需求背景 爬取松产品中心网站下的家电说明书。这里以冰箱为例:松下电器-冰箱网址 网站分析: 第一步: 点击一个具体的冰箱型号,点击了解更多,会打开此型号电器的详情页面。 第二步:在新打开的详情页面中…...

超神级!Markdown最详细教程,程序员的福音
超神级!Markdown最详细教程,程序员的福音Markdown最详细教程,关于Markdown的语法和使用就先讲到这里,如果喜欢,请关注“IT技术馆”。馆长会更新最实用的技术!https://mp.weixin.qq.com/s/fNzhLFyYRd3skG-…...

Android OTA 升级基础知识详解+源码分析
前言: 本文仅仅对OTA升级的几种方式的概念和运用进行总结,仅在使用层面对其解释。需要更详细的内容我推荐大神做的全网最详细的讲解: https://blog.csdn.net/guyongqiangx/article/details/129019303?spm1001.2014.3001.5502 三种升级方式…...

【吊打面试官系列-Mysql面试题】SQL 语言包括哪几部分?每部分都有哪些操作关键字?
大家好,我是锋哥。今天分享关于 【SQL 语言包括哪几部分?每部分都有哪些操作关键字?】面试题,希望对大家有帮助; SQL 语言包括哪几部分?每部分都有哪些操作关键字? SQL 语言包括数据定义(DDL)、…...

Redis的缓存击穿与解决
缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的Key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。 Redis实战篇 | Kyles Blog (cyborg2077.github.io) 目录 解决方案 互斥锁 实现 逻辑过期 实现 解决方案…...

网络层 IP协议【计算机网络】【协议格式 || 分片 || 网段划分 || 子网掩码】
博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,前提 二&…...

Python学习笔记14:进阶篇(三)。类的终结篇,类的导入和模块的导入。
前言 这篇文章属于类知识的最后一篇,带一点点其他知识,学习内容来自于Python crash course。 关注我私信发送Python crash course,分享一份中文版PDF。 类的导入 在学习的时候,包括之前,我都是在一个文件中把所有代…...
C++ lambda表达式举例
C lambda表达式 Lambda表达式是一种简洁的方式来创建匿名函数,可以直接在函数调用的地方定义,主要用于简化代码。 Lambda表达式的基本语法如下: [capture](parameters) -> return_type {// function body };示例1:基本用法 …...
持续总结中!2024年面试必问 20 道设计模式面试题(五)
上一篇地址:持续总结中!2024年面试必问 20 道设计模式面试题(四)-CSDN博客 九、请解释代理模式(Proxy Pattern)及其类型。 代理模式(Proxy Pattern)是一种结构设计模式,…...

嵌入式面经111题答案汇总(含技术答疑)_嵌入式项目源码分享
111道嵌入式面试题答案汇总专栏链接(承诺免费技术答疑) --> 《嵌入式/C面试题解析大全》 1、简介 本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业工作经验,整理超全面111道嵌入式面试…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...