<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[江湖人称菠萝包]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_38647413</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_38647413]]></copyright><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter16-应用程序设计辅助功能]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009659</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009659</guid><author>github_38647413</author><pubDate>Wed, 23 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[有些软件需要开发多语言界面版本，如中文版和英文版，并且在软件里可以方便地切换界面语言。Qt为多语言界面提供了很好的支持，使用Qt的一些规则和工具，可以很方便地为应用程序开发提供多语言界面支持。用Qt开发多语言界面应用程序，主要包括以下几个步骤。（1）在程序设计阶段，程序代码中每一个用户可见的字符串都用tr()函数封装，以便Qt提取界面字符串用于生成翻译资源文件。用UI设计器可视化设计窗体时统一用一种语言，如汉语。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter15-多媒体]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009645</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009645</guid><author>github_38647413</author><pubDate>Wed, 23 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[Qt多媒体模块提供了很多类，可以实现如下的一些功能：访问原始音频设备进行输入或输出；低延迟播放音效文件，如WAV文件；使用播放列表播放压缩的音频和视频文件，如mp3、wmv等；录制声音并且压制文件；使用摄像头进行预览、拍照和视频录制；音频文件解码到内存进行处理；录制音频或视频时，访问其视频帧或音频缓冲区；数字广播调谐和收听。如果在项目中使用视频播放功能，还需要加入下面的一行，以使用QVideoWidget或QGraphicsVideoItem进行视频播放。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter14-网络编程]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009631</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009631</guid><author>github_38647413</author><pubDate>Tue, 22 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[TCP(Transmission Control Protocol)是一种被大多数Internet网络协议（如HTTP 和FTP）用于数据传输的低级网络协议，它是可靠的、面向流、面向连接的传输协议，特别适合用于连续数据传输。TCP通信必须先建立TCP连接，通信端分为客户端和服务器端（如原书的图14-2所示）。Qt提供QTcpSocket类和QTcpServer类用于建立TCP通信应用程序。服务器端程序必须使用QTcpServer用于端口监听，建立服务器；]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter13-多线程]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009621</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009621</guid><author>github_38647413</author><pubDate>Tue, 22 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[QThread类提供不依赖于平台的管理线程的方法。一个QThread类的对象管理一个线程，一般从QThread继承一个自定义类，并重定义虚函数run()，在run()函数里实现线程需要完成的任务。将应用程序的线程称为主线程，额外创建的线程称为工作线程。一般在主线程里创建工作线程，并调用start()开始执行工作线程的任务。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter12-自定义插件和库]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009603</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009603</guid><author>github_38647413</author><pubDate>Mon, 21 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[Qt的UI设计器提供了很多GUI设计的界面组件，可以满足常见的界面设计需求。但是某些时候需要设计特殊的界面组件，而在UI设计器的组件面板里根本没有合适的组件，这时就需要设计自定义的界面组件。所有界面组件的基类是QWidget，要设计自定义的界面组件，可以从QWidget继承一个自定义的类，重定义其paintEvent()事件，利用Qt的绘图功能绘制组件外观，并实现需要的其他功能。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter11-数据库]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009594</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009594</guid><author>github_38647413</author><pubDate>Mon, 21 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[Qt += sql这样会将Qt SQL模块中的所有类都包含进去，如果只使用其中的某些类，为避免冗余可以单独包含某个类。从原书的图11-2的SQL数据模型类的继承关系看，QSqlQueryModel是QSqlTableModel的父类。QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能，但是QSqlQueryModel只能作为只读数据源使用，不可以编辑数据。QSqlQueryModel类的主要接口函数见表11-10（省略了函数中的const关键字和缺省参数）。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009576</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009576</guid><author>github_38647413</author><pubDate>Sun, 20 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[Data Visualization的三维显示功能主要由3种三维图形类来实现，分别是三维柱状图类Q3DBars，三维空间散点类Q3DScatter，三维曲面类Q3DSurface。这3个类的父类是QAbstract3 DGraph，是从QWindow继承而来的，继承关系如原书的图10-1所示。Data Visualization与Qt Charts类似，都基于Qt的图形视图结构，所以一个三维图形也是由图表、序列、坐标轴等元素组成的。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/166009549</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/166009549</guid><author>github_38647413</author><pubDate>Sun, 20 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[Qt Charts模块是一组易于使用的图表组件，它基于Qt的Graphics View架构，其核心组件是QChartView和QChart。QChartView的父类是QGraphicsView，就是Graphics View架构中的视图组件，所以，QChart View是用于显示图表的视图。QChart的继承关系如原书的图9-1所示，可以看到，QChart是从QGraphicsItem继承而来的，所以，QChart是一种图形项。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter8-绘图]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489998</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489998</guid><author>github_38647413</author><pubDate>Sat, 19 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[首先假设一个五角星的中心点是原点，第0个点在X轴上，五角星外接圆半径为100，计算出5个点的坐标，保存在points数组中。然后定义了一个QPainterPath类的变量starPath，用于记录画五角星的过程，就是几个点的连线过程，并且标注点的编号。使用QPainterPath的优点就是定义一个QPainterPath类型的变量记录一个复杂图形的绘制过程后，可以重复使用。虽然points数组中的点的坐标是假设五角星的中心点是原点，在绘制不同的五角星时只需将坐标平移到新的原点位置，就可以绘制不同的五角星。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter7-文件系统和文件读写]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489986</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489986</guid><author>github_38647413</author><pubDate>Sat, 19 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[文本文件是指以纯文本格式存储的文件，例如用Qt Creator编写的C++程序的头文件（.h文件）和源程序文件（.cpp文件）。HTML和XML文件也是纯文本文件，只是其读取之后需要对内容进行解析之后再显示。Qt提供了两种读写纯文本文件的基本方法，一种是用QFile类的IODevice读写功能直接进行读写，另一种是利用QFile和QTextStream结合起来，用流（Stream）的方法进行文件读写。实例samp7_1演示了这两种方法读写文本文件，其运行时窗口如原书的图7-1所示。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter6-对话框与多窗体设计]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489961</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489961</guid><author>github_38647413</author><pubDate>Fri, 18 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[Qt为应用程序设计提供了一些常用的标准对话框，如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等，用户无需再自己设计这些常用的对话框，这样可以减少程序设计工作量。在前面几章的实例中，或多或少地用到了其中的一些对话框。Qt预定义的各标准对话框的类，及其主要静态函数的功能见表6-1（由于输入参数一般较多，省略了函数的输入参数，只列出了函数的返回值类型）。表6-1　Qt预定义标准对话框对话框常用静态函数名称函数功能QFileDialog 文件对话框选择打开一个文件。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter5-ModelView结构]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489939</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489939</guid><author>github_38647413</author><pubDate>Fri, 18 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[QStringListModel用于处理字符串列表的数据模型，它可以作为QListView的数据模型，在界面上显示和编辑字符串列表。QStringListModel的setStringList()函数可以初始化数据模型的字符串列表的内容，stringList()函数返回数据模型内的字符串列表，在关联的ListView组件里编辑修改数据后，数据都会及时更新到数据模型内的字符串列表里。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter4-常用界面设计组件]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489930</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489930</guid><author>github_38647413</author><pubDate>Thu, 17 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[QComboBox是下拉列表框组件类，它提供一个下拉列表供用户选择，也可以直接当作一个QLineEdit用作输入。QComboBox除了显示可见下拉列表外，每个项（item，或称列表项）还可以关联一个QVariant类型的变量，用于存储一些不可见数据。QPlainTextEdit是一个多行文本编辑器，用于显示和编辑多行简单文本。实例samp4_6演示QComboBox和QPlainTextEdit的使用，其运行时界面如原书的图4-6所示。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter3-Qt类库概述]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489913</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489913</guid><author>github_38647413</author><pubDate>Thu, 17 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[Qt本身并不是一种编程语言，它实质上是一个跨平台的C++开发类库，是用标准C++编写的类库，它为开发GUI应用程序和非GUI应用程序提供了各种类。Qt对标准C++进行了扩展，引入了一些新的概念和功能，例如信号与槽、对象属性等。Qt的元对象编译器（Meta-Object Compiler，MOC）是一个预处理器，在源程序被编译前先将这些Qt特性的程序转换为标准C++兼容的形式，然后再由标准C++编译器进行编译。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter2-GUI应用程序设计基础]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489903</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489903</guid><author>github_38647413</author><pubDate>Wed, 16 Sep 2026 06:15:00 +0800</pubDate><description><![CDATA[完成功能后的qwdlgmanual.h文件中QWDlgManual类的完整定义如下。Q_OBJECTprivate://UI 创建与初始化//初始化信号与槽的链接//Underline的槽函数//Italic的槽函数//Bold的槽函数//设置字体颜色public:在QWDlgManual类的private部分，声明了界面上的各个组件的指针变量，这些界面组件都需要在QWDlgManual类的构造函数里创建并在窗体上布局。]]></description><category></category></item><item><title><![CDATA[【Qt】《Qt 5.9 C++开发指南》笔记-Chapter1-认识Qt]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489882</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489882</guid><author>github_38647413</author><pubDate>Wed, 16 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[C++是一种通用的标准编程语言，使用任何编辑器都可以编写C++源程序，然后利用C++编译器对程序进行编译，就可以生成可执行的程序。为了方便进行C++程序的编写和编译，有各种综合开发环境（Integrated Developing Environment，IDE），如Visual Studio就是Windows平台上常见的编写C++程序的IDE。]]></description><category></category></item><item><title><![CDATA[【Windows】《深入浅出Windows API程序设计：核心编程篇》笔记-Chapter11-PE文件格式深入剖析]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165489860</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165489860</guid><author>github_38647413</author><pubDate>Tue, 15 Sep 2026 20:29:15 +0800</pubDate><description><![CDATA[PE（Portable Executable，可移植的执行体）是微软可执行文件（.exe或.dll）采用的格式，PE格式的目标是使可执行文件可以在不同的CPU工作指令下运行，该格式可以兼容于Windows操作系统的多个版本。PE格式是操作系统工作方式的写照，PE文件头的数据供操作系统装载可执行文件使用，操作系统会根据PE文件头的信息把可执行文件载入内存，加载导入表中提供的动态链接库，根据重定位表修正代码等。]]></description><category></category></item><item><title><![CDATA[【Windows】《深入浅出Windows API程序设计：核心编程篇》笔记-Chapter10-其他常用Windows API编程知识]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165126274</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165126274</guid><author>github_38647413</author><pubDate>Mon, 14 Sep 2026 07:15:00 +0800</pubDate><description><![CDATA[快捷方式是Windows提供的一种快速启动程序、打开文件或文件夹的方法，快捷方式的扩展名通常为.lnk，另外还有扩展名为.url的网页快捷方式等。快捷方式的相关属性包括快捷方式指向的目标文件路径、快捷方式自身路径、起始位置（工作目录）、快捷键、运行方式（常规窗口、最小化或最大化）、备注（描述）、图标和命令行参数等。快捷键属性指的是为目标文件设置一个特定线程热键，按下快捷键时会打开目标文件。]]></description><category></category></item><item><title><![CDATA[【Windows】《深入浅出Windows API程序设计：核心编程篇》笔记-Chapter9-WinSock网络编程]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165126260</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165126260</guid><author>github_38647413</author><pubDate>Mon, 14 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[I/O完成端口为在多CPU系统上处理多个并发异步I/O请求提供了一种高效的线程模型。与在收到I/O请求时创建一个工作线程相比，处理多个并发异步I/O请求的进程可以通过将I/O完成端口与线程池结合使用以更快、更高效地完成。I/O完成端口是一个内核对象，但是I/O完成端口仅与创建它的进程相关联，不能在进程间共享。创建I/O完成端口对象的CreateIoCompletionPort函数并没有一个安全属性结构参数。]]></description><category></category></item><item><title><![CDATA[【Windows】《深入浅出Windows API程序设计：核心编程篇》笔记-Chapter8-Windows异常处理]]></title><link>https://blog.youkuaiyun.com/github_38647413/article/details/165126248</link><guid>https://blog.youkuaiyun.com/github_38647413/article/details/165126248</guid><author>github_38647413</author><pubDate>Sun, 13 Sep 2026 07:15:00 +0800</pubDate><description><![CDATA[向量化异常处理（Vectored Exception Handling，VEH）是对结构化异常处理的扩展，向量化异常处理是基于进程全局的，程序可以注册一个函数来监视或处理该程序的所有异常，当进程中的任何一个线程中发生异常时，都去调用注册的这个函数（异常处理程序）。程序可以通过调用AddVectoredExceptionHandler函数添加或者注册一个向量化异常处理程序，也可以多次调用AddVectoredExceptionHandler函数添加多个异常处理程序，所有向量化异常处理程序形成一个VEH链表。]]></description><category></category></item></channel></rss>