| 作者 | 将狼才鲸 |
|---|---|
| 创建日期 | 2021-11-23 |
$ tree
.
|-- backup // 待删的一些旧文件
|-- projects // 已弃用,对同一份代码有makefile、qt、visual studio三个工程
| |-- 001_HelloWorld_makefile
| |-- 001_HelloWorld_qt
| `-- 001_HelloWorld_vs
|-- readme.md
`-- source // 源码
|-- 001_HelloWorld /* Hello world */
| `-- hello_world.c
|-- 002_GuiDisplay // 演示GUI
| |-- 001_Window /* 主窗口 + HelloWorld */
| | |-- 001_Window.pro // Qt工程文件
| | |-- documents // 该Demo存放文档路径
| | | |-- 001_Window.md // 该Demo说明文档
| | | `-- 001_Window.png // 该Demo演示效果的图片
| | |-- main.cpp // 主程序,程序入口
| | |-- mainwindow.cpp // 主窗口显示逻辑
| | |-- mainwindow.h // 主窗口头文件
| | `-- mainwindow.ui // 主窗口布局
| |-- 002_Dialog /* 对话框 */
| |-- 003_LoginDialog /* 登录功能 */
| |-- 004_menu_logo /* 添加菜单栏和图标 */
| |-- 005_icon_and_layout /* 完整菜单栏和居中动态布局 */
| |-- 006_text_file_edit /* 记事本编辑功能 */
| |-- 007_text_find /* 文本查找功能 */
| |-- 008_keyboard_mouse /* 键盘和鼠标功能 */
| |-- 009_2D_painter /* 2D绘图 */
| |-- 010_image /* 图片绘制 */
| |-- 011_3D_painter /* 3D三维绘制 */
| |-- 012_media_play /* Qt老版本的视频播放 */
| | xxx_xxx
| | ……
| `-- documents
| `-- GuiDisplay.md
|-- 003_QtExamples_Qt-6.2.3 // Qt官方的各种经典示例
| |-- 001_xxx
| `-- documents
| `-- QtExamples_Qt-6.2.3.md
|-- 004_MultiMedia_VideoAudio // 演示如何使用音视频播放与录制
| |-- 001_qt6.2.3_multimedia /* Qt6.2.3提供的完整播放器代码 */
| |-- 002_pcm_audio_play /* PCM音频播放 */
| |-- 003_yuv_video_play /* YUV视频播放 */
| |-- 004_pcm_input_save_file /* 从麦克风录制pcm文件 */
| |-- 005_yuv_input_save_file /* 从摄像头录制yuv文件 */
| `-- documents
| `-- MultiMedia_VideoAudio.md
|-- 005_Qt_with_C_language /* C++与C混合编程 */
|-- 006_AudioVideo_Codec /* Qt中ffmpeg音视频编解码 */
`-- 007_Embeded_Player /* 自行实现音视频编解码与播放器(嵌入式仿真用) */
`-- documents
Qt概念、安装、更新、使用的介绍详情见 子文档 《01_Qt介绍、安装、更新、框架.md》
Qt框架、架构、模块的简述详见 子文档 《02_Qt框架、架构、模块.md》
步骤:
第1篇 Qt5基础(一)Qt开发环境的搭建和hello world
效果:

步骤:
第2篇 Qt5基础(二)编写Qt多窗口程序
效果:








步骤:
Qt6.2版本中已经有了播放器的Demo,亲测可用。先下载Qt并安装Qt6.2.3,或者更新到Qt6.2.3,直接在欢迎页找到Media Player Example的示例,编译并运行,亲测可用,这是一个完整的播放器(商用标准)。
效果:

注意事项:
本工程更新了Qt软件,Qt使用了Qt6.2.3编译,IDE使用Qt creator 7.0.0
Qt6.2.3安装后的官方源码路径:
Qt\Examples\Qt-6.2.3\multimediawidgets\player
其中还有两个更简单的视频播放器示例:
Qt\Examples\Qt-6.2.3\multimediawidgets\videographicsitem
Qt\Examples\Qt-6.2.3\multimediawidgets\videowidget
Qt\Examples\Qt-6.2.3\multimedia\目录下很多音视频编解码相关的示例。
参考网址:
Media Player Example 官方示例说明
Qt 6中的Qt Multimedia模块
Qt Multimedia in Qt 6 官方multimedia模块介绍
QT开发总结(22)——多媒体 更详细的介绍
QT AV 播放器 另一个使用ffmpeg的播放器
MorningLight / QtAV QtAV源码
QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk) QtAV的更详细介绍
步骤:
Qt播放PCM音频(裸流)文件的两种方法
QT 用QAudio语音库实现音频信号的采集 以及发送到另一台电脑 播放
error: no member named ‘setCodec’ in ‘TestNamespace::QAudioFormat’
效果:

注意事项:
只能用Qt5.15.2编译,Qt6.2.1、 Qt6.1.3 和 Qt6.0.4都有multimedia模块的bug
效果:

注意事项:
只能用Qt5.15.2编译,Qt6.2.1、 Qt6.1.3 和 Qt6.0.4都有multimedia模块的bug
步骤:
详见源码中文档和注释
注意事项:
使用Qt6.2.3编译,实现方式和Qt5完全不同
步骤:
详见源码中文档和注释
注意事项:
使用Qt6.2.3编译,实现方式和Qt5完全不同
qt_gui_simple2complex\source\003_QtExamples_Qt-6.2.3\下的Demo部分:
Qt官方Demo的整体介绍详见 子文档 《QtExamples_Qt-6.2.3.md》



















前面已列出的官方用例还不到1/5,Qt\Examples\Qt-6.2.3\下的Demo还有非常多, 建议先了解有哪些类型的Demo,需要用到相关功能的时候先去找官方示例,后续的示例效果图省略。
官方所有示例的介绍有文字简介和示意图地址(英文版,可以用浏览器翻译成中文查阅,先看Qt Widgets章节,主页只有文字介绍,点开具体示例可以看到演示图片和使用说明):
All Qt Examples
其它的演示效果图参考网址:
Qt Examples Qt实例汇总
Qt Examples
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or
我创建了一个由于“在运行时执行的单例元类定义”而无法编码的对象(这段代码的描述是否正确?)。这是通过以下代码执行的:#defineclassXthatmyusesingletonclassmetaprogrammingfeatures#throughcallofmethod:break_marshalling!classXdefbreak_marshalling!meta_class=class我该怎么做才能使对象编码正确?是否可以从对象instance_of_x的classX中“移除”单例组件?我真的需要一个建议,因为我们的一些对象需要通过Marshal.dump序列化机制进行缓存。
我正在查看Ruby日志记录库Logging.logger方法并从sourceatgithub提出问题与这段代码有关:logger=::Logging::Logger.new(name)logger.add_appendersappenderlogger.additive=falseclass我知道类 最佳答案 这实际上删除了方法(当它实际被执行时)。这是确保close不会被调用两次的保障措施。看起来好像有嵌套的“class 关于Ruby元编程问题,我们在StackOverflow上找到一
使用Paperclip,我想从这样的URL抓取图像:require'open-uri'user.photo=open(url)问题是我最后得到一个像“open-uri20110915-4852-1o7k5uw”这样的文件名。有什么方法可以更改user.photo上的文件名?作为一个额外的变化,Paperclip将我的文件存储在S3上,所以如果我可以在初始分配中设置我想要的文件名就更好了,这样图像就会上传到正确的S3key。像这样:user.photo=open(url),:filename=>URI.parse(url).path 最佳答案