自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

啊渊的专栏

国产操作系统下的QT开发教程

  • 博客(509)
  • 资源 (32)
  • 问答 (1)
  • 收藏
  • 关注

原创 六款最好的免费杀毒软件

通过以上链接,你可以获取最新版的360安全卫士并进行安装。安装后,建议你定期更新病毒库和软件版本,以确保获得最佳的保护效果。通过以上链接,你可以获取最新版的腾讯电脑管家并进行安装。安装后,建议你定期更新病毒库和软件版本,以确保获得最佳的保护效果。通过以上链接,你可以获取最新版的Comodo并进行安装。安装后,建议你定期更新病毒库和软件版本,以确保获得最佳的保护效果。通过以上链接,你可以获取最新版的金山毒霸并进行安装。安装后,建议你定期更新病毒库和软件版本,以确保获得最佳的保护效果。

2024-06-23 08:00:00 6861

原创 QBitArray使用详解

`QBitArray` 是 Qt 提供的一个位数组类,用于高效地存储和操作一组位。它可以用来处理需要逐位存储和访问的数据,例如位掩码、位图等。下面是 `QBitArray` 的详细使用说明。

2024-06-21 10:00:00 702

原创 QPair使用详解

`QPair` 是 Qt 提供的一个模板类,用于存储一对值。它非常适合在需要将两个相关的值组合在一起并作为一个整体处理的场景中使用。下面是 `QPair` 的详细使用说明。

2024-06-21 08:00:00 1246

原创 QByteArray使用详解

`QByteArray` 是 Qt 提供的一个字节数组类,用于处理二进制数据。它可以存储原始字节,并提供了一系列方法来操作和转换这些字节数据。`QByteArray` 在处理文本和二进制文件、网络数据传输等场景中非常有用。

2024-06-20 10:00:00 3714

原创 QStack使用详解

`QStack` 是 Qt 提供的一个基于模板的容器类,用于存储同类型对象的栈数据结构。它继承自 `QVector`,提供了与栈相关的操作方法,如 `push()`, `pop()`, 和 `top()`。`QStack` 的主要用途是在需要后进先出 (LIFO, Last In First Out) 数据结构的场景中。

2024-06-20 08:00:00 1845

原创 QMultiMap使用详解

`QMultiMap` 是 Qt 提供的一个容器类,用于存储键值对,其中一个键可以对应多个值。它是基于 `QMap` 实现的,支持快速查找和插入操作。`QMultiMap` 的主要用途是在需要存储具有相同键的多个值时,提供便捷的操作接口。

2024-06-19 10:00:00 1207

原创 QQueue使用详解

在Qt中,QQueue是一个模板类,可以用来存储任意类型的队列,包括自定义类型。为了使用自定义类型,需要确保该类型具有必要的构造函数和操作符。以下是如何在QQueue定义自定义类型创建一个类来表示自定义类型。确保该类包含必要的构造函数和操作符。在QQueue中使用自定义类型定义和操作QQueue实例,将自定义类型的对象插入到队列中,并从队列中取出对象进行操作。假设我们有一个表示任务的自定义类型Task。public:// 必要的成员函数// 友元函数用于输出 Task 对象的信息。

2024-06-19 08:00:00 1991

原创 QSet使用详解

`QSet` 是 Qt 提供的一个基于哈希表的模板类,用于存储`唯一`的值,当插入相同数值数据时会自动去重复,类似于 C++ 的标准模板库中的 `std::unordered_set`。`QSet` 可以存储任何可哈希化的类型,并提供高效的插入、删除和查找操作。

2024-06-18 10:00:00 1047

原创 QHash使用详解

`QHash` 是 Qt 提供的一个基于哈希表的模板类,用于存储键值对。它提供了快速的查找、插入和删除操作。`QHash` 类似于 C++ 标准模板库中的 `std::unordered_map`,但具有 Qt 的特性和接口。

2024-06-18 08:00:00 1249

原创 QComboBox使用详解(Qt)

`QComboBox` 是 Qt 提供的一个下拉列表框控件,常用于让用户从多个选项中选择一个。它既可以展示文本选项,也可以展示图像和自定义的内容。以下是 `QComboBox` 的使用详解,包括基本用法、信号与槽的连接、自定义项、编辑功能等。

2024-06-17 09:48:06 3327

原创 QList使用详解

`QList` 是 Qt 提供的一个泛型容器类,类似于 C++ 的标准模板库中的 `std::vector`,用于存储一系列元素。`QList` 可以存储任何类型的对象,并且支持高效的插入、删除和访问操作。

2024-06-17 09:40:54 3189

原创 QT图片转PDF项目实战(含源码)

最近在换工作,都需要将所有的图片,例如身份证、毕业证等信息都需要合并到一个pdf中。找了软件发现几乎都需要收费,干脆就自己写一个好了。如果各位其他需求,可以在留言中提出,如果我能做到,我会尽量满足。

2024-06-17 08:00:00 345

原创 QSharedMemory使用详解

`QSharedMemory` 是 Qt 提供的一个类,用于在多个进程之间共享内存。它可以让您在不同的进程间传递数据,而无需通过文件或网络来进行传输。下面是 `QSharedMemory` 的详细用法和相关知识点。

2024-06-16 19:52:39 1404

原创 QLinkedList使用详解

`QLinkedList` 是 Qt 提供的一个双向链表类,适用于频繁在中间插入和删除元素的场景。与其他容器类相比,`QLinkedList` 更适合需要高效插入和删除操作但不需要随机访问的情况。

2024-06-16 10:00:00 952

原创 QVector使用详解

`QVector` 是 Qt 框架中提供的一个模板类,用于动态数组的操作。它与标准库中的 `std::vector` 类似,但更适合在 Qt 应用中使用。`QVector` 提供了多种功能,便于管理和操作动态数组。下面将详细介绍 `QVector` 的各项功能,并给出示例代码。

2024-06-14 22:58:16 3143

原创 QMap使用详解

`QMap` 是 Qt 提供的一个模板类,用于存储键值对。默认情况下,`QMap` 可以使用基本数据类型或 Qt 的基本类型(如 `QString`, `int`, `QDate` 等)作为键。但是,如果你需要使用自定义类型作为键,则需要满足一些特定的条件。

2024-06-14 22:50:22 1247

原创 你知道华为为了让你好好写代码,做了哪些努力吗?

在华为最轻松快乐的事就是写代码。方案设计、逻辑思路、接口定义、数据结构在设计阶段都已经定好了,研发人员只需要按照领导给的设计文档来编写代码就好,几乎不用费脑子,第一个需求研发的时候我几乎不知道这个需求是干啥用的只需要按照接口就完成了研发要求。同样在华子最烦的事是定方案和扯皮。事来需要先定位边界,一般定位边界的时间,一个BUG都快写完了[冷汗],我曾经最高记录拉了40多个人陆陆续续进会议定位BUG,从上午9点一直到下午5点中午饭在别人定位BUG的时候我吃了碗泡面。为了让你写好代码,华为做了哪些努力呢?

2024-06-12 22:32:26 462

原创 GTK3.0高级控件(万字详解+源码)

3.4.1 GTK3.0的GtkTreeView:树视图3.4.1 GTK3.0的GtkListBox:列表框3.4.1 GTK3.0的GtkFlowBox:流动框3.4.1 GTK3.0的GtkIconView:图标视图3.4.1 GTK3.0的GtkSpinButton:旋转按钮(数值输入)3.4.1 GTK3.0的GtkSpinner:旋转器(加载动画)3.4.1 GTK3.0的GtkFrame:框架3.4.1 GTK3.0的GtkAspectFrame:宽高比框架3.4.1 GTK3

2024-06-06 09:08:20 147

原创 gtk3.0入门看这一篇就够(十万字总结+源代码)

GTK(GIMP Toolkit)是一个用于创建图形用户界面(GUI)的跨平台工具包,主要用于Linux环境。GTK 3.0 是该工具包的一个版本,提供了一系列用于构建现代化、用户友好的应用程序界面的功能。

2024-05-30 21:14:51 676

原创 C++企业级编码规范(大厂规范)

编码规范在软件开发过程中起到了标准化、优化和保障的作用,不仅提升了代码质量和团队协作效率,还为项目的长期维护和扩展提供了坚实的基础。通过坚持和执行编码规范,开发团队能够更好地应对复杂的开发挑战,交付高质量的软件产品。

2024-05-18 22:27:28 214

原创 webassembly入门详解(C++)

webassembly C++ windows下开发环境搭建。

2024-05-05 10:01:14 1328 1

原创 Qt GUI 优化方案详解

使用Qt的事件过滤器,精细控制事件的传递过程。资源加载优化:分析应用启动时对资源的加载情况,包括图片、字体等,考虑采用延迟加载或异步加载等策略,以减少启动时的等待时间。识别应用中的关键资源,如图像、字体、配置文件等,采用预加载策略确保它们在需要时已经在内存中,减少运行时加载造成的延迟。是一个用于跟踪系统调用的工具,它可以捕获应用程序与内核之间的交互,帮助定位程序的问题,分析程序的行为。启动日志分析:收集并分析启动阶段的日志信息,识别潜在的性能瓶颈,包括初始化阶段的警告和错误,以及可能的优化空间。

2024-04-29 07:00:00 119

原创 QT文件上传带进度条实例(含源码)

QT文件上传带进度条实例(含源码)

2024-04-28 07:45:00 420

原创 《开发环境搭建》ArkUi 第一课

选择对应的平台下载对应的开发工具,我使用的是windows系统所以下载window就好了。

2024-03-10 22:24:21 87

原创 华为荣耀终端机试真题

字符展开(200分)

2024-03-05 21:59:27 778

原创 STL源码to_string解析

文件地址:libstdc+±v3\include\bits\basic_string.h。

2024-01-31 10:08:41 86

原创 C++11可变模板

定义一个递归的函数。T:表示一个,Types:表示多个。每次递归都移除一个参数,直到最后一个参数为止。void print(const T& firstArg)为结束递归的函数。

2024-01-30 18:05:36 182

原创 C++字符串分割

C++ 的 std::string 类并没有直接提供类似于 Python 中 split 方法的内置函数,但你可以使用其他方式来实现字符串分割。因此我们需要自己去实现这个方法。

2024-01-30 16:37:11 94

原创 Cppcheck静态分析工具详解

你可以从Cppcheck的官方网站(Cppcheck下载页面)下载并安装Cppcheck。安装完成后,你可以在终端或命令提示符中使用Cppcheck命令。

2024-01-18 17:26:13 307

原创 chromium+clangd快速代码跳转

在开发chromium的时候我们使用vscode工具进行开发,如果使用C++插件发现很容就卡死计算机了。所以我们使用clangd工具来查看chromium的代码。

2024-01-16 14:02:45 439

原创 cmake构建动态库实例(cmakelist)

使用相对路径引用动态库的方式-rpath设置。最外层CMakeLists.txt。

2024-01-16 13:39:19 616

原创 OpenCloudOS 安装google浏览器

【代码】OpenCloudOS 安装google浏览器。

2024-01-12 10:15:18 196

原创 交叉编译ARM64架构electron问题汇总

本文主要参考Electron官方文档中和在amd64环境内构建arm64的electron包。如果是arm64环境请查看文章。

2024-01-09 17:07:00 1141

原创 chromium浏览器静默截图

chromium浏览器静默截图

2024-01-09 15:22:51 381

原创 arm64架构编译electron长征路

在arm64下需要构建对应架构的gn文件。源代码下载,并且切换到对应的版本。将gn源码放在src/tools/gn目录下,内容如下图。

2024-01-08 21:13:37 1396

原创 统信专业版编译electron问题总结

在执行 gn gen out/Release --args=“import(”//electron/build/args/release.gn")"过程中出现的问题。执行ninja -C out/Release electro命令时出的错误。

2024-01-07 19:17:40 1534

原创 arm64操作系统LLVM源码编译

编译electron需要对应版本的LLVM编译器,因此需要构建arm64版本的LLVM。构建过程如下。

2024-01-04 09:52:16 455

原创 C++虚函数和纯函数

允许在基类中定义通用接口,而将具体实现留给派生类。这样可以实现接口的定义和实现的分离,使得基类更加抽象和通用。进一步推动了接口和实现的分离,因为纯虚函数不提供任何默认实现,完全由派生类来实现。可以创建包含虚函数的抽象类,但它仍然可以被实例化。虚函数可以有默认实现。必须在包含纯虚函数的类中创建一个实例。它强制该类成为抽象类,不能被直接实例化。

2023-12-29 16:43:47 994

原创 统信操作系统中QWebEngine(js与C++交互)

在统信操作系统中安装qtwebchannel5-examples,当然在window中也可以下载对应的example找到qwebchannel.js查看文件路径。

2023-12-29 10:41:56 458

原创 Qt GUI 优化方案详解

使用Qt的事件过滤器,精细控制事件的传递过程。资源加载优化:分析应用启动时对资源的加载情况,包括图片、字体等,考虑采用延迟加载或异步加载等策略,以减少启动时的等待时间。识别应用中的关键资源,如图像、字体、配置文件等,采用预加载策略确保它们在需要时已经在内存中,减少运行时加载造成的延迟。是一个用于跟踪系统调用的工具,它可以捕获应用程序与内核之间的交互,帮助定位程序的问题,分析程序的行为。启动日志分析:收集并分析启动阶段的日志信息,识别潜在的性能瓶颈,包括初始化阶段的警告和错误,以及可能的优化空间。

2023-12-29 07:00:00 1025

qt-prince-master.zip

QT时钟demo

2024-09-06

git教程.txtGit是一种分布式版本控制系统,用于跟踪文件和目录的变化,以及协调多个人员之间的代码协作 以下是一个详细的Gi

Git是一种分布式版本控制系统,用于跟踪文件和目录的变化,以及协调多个人员之间的代码协作。以下是一个详细的Git教程,涵盖了Git的基本概念、安装、配置、基本操作、分支管理、远程仓库操作以及团队协作等方面的内容。 ### 一、Git基本概念 1. **版本控制**:版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。它能帮助你管理不同版本的开发代码,防止代码丢失,并促进多人协作。 2. **仓库(Repository)**:一个Git仓库是一个存储你项目所有文件和历史版本的地方。它可以是本地的,也可以是远程的。 3. **提交(Commit)**:提交是保存代码更改的操作,每次提交会生成一个唯一的哈希值用于标识。 4. **分支(Branch)**:分支是用来进行并行开发的,你可以在分支上进行实验性的更改而不影响主线。 5. **合并(Merge)**:将一个分支的更改合并到另一个分支。 6. **冲突(Conflict)**:当多个分支的更改发生冲突时,需要手动解决。 ### 二、Git安装与配置 1. **安装Git**: - 访问[Git官

2024-08-21

PEB-FUN.zip打印exe运行时模块中所有 的函数名称以及地址

PEB_FUN.zip打印exe运行时模块中所有 的函数名称以及地址。 void printAllFunctionName(HANDLE hModule){ if (hModule == NULL) { std::cerr << "Failed to load DLL." << std::endl; return ; } // 获取PE头指针 PIMAGE_DOS_HEADER pDOSHeader = (PIMAGE_DOS_HEADER)hModule; PIMAGE_NT_HEADERS pNTHeaders = (PIMAGE_NT_HEADERS)((BYTE*)hModule + pDOSHeader->e_lfanew); // 获取导出表的地址 DWORD exportDirRVA = pNTHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress; PIMAG

2024-08-20

PEB-DLL.zip打印exe运行时加载的所有dll模块地址以及模块名称

PEB_DLL.zip打印exe运行时加载的所有dll模块地址以及模块名称PEB_DLL.zip打印exe运行时加载的所有dll模块地址以及模块名称PEB_DLL.zip打印exe运行时加载的所有dll模块地址以及模块名称 void printAllDLLModule(){ auto peb = (PEB*)NtCurrentTeb()->ProcessEnvironmentBlock; // 获取Ldr并遍历InLoadOrderModuleList来查找模块 if (peb && peb->Ldr) { PLIST_ENTRY moduleList = &peb->Ldr->InLoadOrderModuleList; PLIST_ENTRY entry = moduleList->Flink; while (entry != moduleList) { // 获取当前模块的LDR_DATA_TABLE_ENTRY结构 PLDR_DATA_TABLE_ENTRY

2024-08-20

PPE解析+函数地址调用函数

PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址调用函数PPE解析+函数地址

2024-08-20

c++ json字符串解析和构建源码

c++ json字符串解析和构建源码 构建json对象,解析json字符串 C++构建json对象,C++解析json字符串 C构建json对象,C解析json字符串 C++json详解 C++ json void CreateArrayObeject(){ std::unique_ptr<cJSON,cJSON_Deleter> json_data(cJSON_CreateArray()); std::vector<Student> vstu; Student stu1("zhangsan",10,"nan"); Student stu2("lisi",12,"nan"); Student stu3("wangwu",13,"nv"); vstu.push_back(stu1); vstu.push_back(stu2); vstu.push_back(stu3); for(auto stu :vstu){ cJSON *item = cJSON_CreateObject(); c

2024-08-12

windows系统图片转PDF工具

windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows系统图片转PDF工具windows

2024-06-09

demo3.1.10(GtkEntry).rar

demo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rardemo3.1.10(GtkEntry).rar

2024-05-31

demo3.1.10(GtkEntry) (password).rar

demo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10(GtkEntry) (password).rardemo3.1.10

2024-05-31

demo3.1.9(GtkSwitch).rar

demo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch).rardemo3.1.9(GtkSwitch)

2024-05-31

demo3.1.8(GtkRadioButton).rar

demo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1.8(GtkRadioButton).rardemo3.1

2024-05-31

demo3.1.7(GtkCheckButton).rar

demo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1.7(GtkCheckButton).rardemo3.1

2024-05-31

demo3.1.6(GtkToggleButton).rar

demo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleButton).rardemo3.1.6(GtkToggleB

2024-05-31

demo3.1.5(GtkButton).rar

demo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton).rardemo3.1.5(GtkButton)

2024-05-31

demo3.1.4(GtkStatusbar).rar

demo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rardemo3.1.4(GtkStatusbar).rar

2024-05-31

demo3.1.3(GtkProgressBar).rar

demo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1.3(GtkProgressBar).rardemo3.1

2024-05-31

demo3.1.2(GtkImage).rar

demo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImage).rardemo3.1.2(GtkImag

2024-05-31

demo3.1.1(GtkLabel).rar

demo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rardemo3.1.1(GtkLabel).rar

2024-05-30

demo2.2(GtkDialog C++ Demo).rar

demo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo2.2(GtkDialog C++ Demo).rardemo

2024-05-30

demo2.1.1(GtkWindow).rar

demo2.1.1(GtkWindow).rar

2024-05-30

ubuntu-20.04.6-live-server-amd64.iso.torrent

ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso ubuntu 20.04 服务器版本amd64 镜像 iso

2024-04-13

202305(第14届)蓝桥杯C++编程青少组(省赛)真题.docx

第 6 题 【 问答题 】 活动人数 时间限制: 1000MS 内存限制: 65536KB 题目描述: 编程实现:活动人数 有一个大型企业集团,由N个部门组成,编号从1到N。这些部门之间的层次关系形成了一个树状结构,一个上级部门可能会有1个或多个直接下级部门,一个下级部门只有一个直接上级部门。 本月集团举办了一个大型活动,这次的活动组织方按如下要求安排活动: 1. 来的人越多越好; 2. 如果一个上级部门参加本次活动,那么他们的直接下级部门就不能参加,而他的间接下集部门可以参加(如下图,如果部门1参加,那么部门2、3不能参加,而部门4、5、6可以参加)。 请你帮他们计算一下,如何安排可以使参加活动的人数最多,并输出参加活动的最多人数。 例如:当N=6,每个部门编号为1到6,部门上下级关系和部门的人数如下图所示: 注意:示例中,部门1是层级最高的部门,没有直接上级,故将其直接上级部门设为0; 当安排(1、4、5、6)这4个部门参加活动时,人数最多,为11,所以输出11。 输入描述 第一行输入一个正整数N(1≤N≤100000),表示集团所有部门的数量 接

2024-01-14

mysql入门教程.txt

mysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txtmysql入门教程.txt

2024-01-14

github搭建教程.txt

github搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程.txtgithub搭建教程

2024-01-14

PDF转图片实例源码png

PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码PDF转图片实例源码

2023-12-27

UsingGNbuild.pdf

GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说明文档。GNbuild详细说

2023-12-27

gn编译最小hello word实例

gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hello word实例,BUILD.gn,gn在linux操作系统中最小编译环境。 gn编译最小hell

2023-12-27

Qt自定义事件Demo

在Qt中,你可以创建自定义事件类型,以便在应用程序中传递自定义的信息。为了实现自定义事件,你需要继承自`QEvent`类,并定义你自己的事件类型。然后,你可以在需要的时候创建自定义事件对象,并将它们发送给事件接收者。以下是如何使用Qt的自定义事件的说明和示例: **使用说明:** 1. **定义自定义事件类型:** 创建一个继承自`QEvent`的子类,并在子类中添加你需要的成员变量和方法。 2. **创建自定义事件对象:** 在需要的时候,创建你自定义事件类型的对象,传入构造函数中的参数,以便在事件接收者处获取信息。 3. **发送自定义事件:** 使用`QCoreApplication::sendEvent()`或者`QCoreApplication::postEvent()`发送自定义事件对象。 4. **接收和处理自定义事件:** 在事件接收者处重载`event(QEvent *event)`函数,检查事件的类型,并根据需要处理自定义事件。

2023-10-14

Qt定时器事件Demo

在Qt中,定时器事件是一种周期性触发的事件,通常用于执行一些重复性的操作,比如更新UI、定期检查数据等。你可以使用`QTimer`类来创建定时器,并连接定时器事件的处理函数。以下是如何使用Qt的定时器事件的说明和示例: **使用说明:** 1. **创建定时器:** 使用`QTimer`类创建一个定时器对象。 2. **设置定时器参数:** 使用`setInterval()`方法设置定时器的时间间隔,以毫秒为单位。 3. **连接定时器事件处理函数:** 使用`timeout`信号连接定时器事件的处理函数。 4. **启动定时器:** 使用`start()`方法启动定时器,使其开始计时。

2023-10-14

Qt事件对象(QEvent)Demo

在Qt中,事件对象是`QEvent`或其子类的实例,用于封装事件的信息。不同的事件类型对应着`QEvent`的不同子类。你可以使用这些事件对象的方法和属性来获取事件的相关信息,例如鼠标坐标、键盘按键等。 **使用说明:** 1. **获取事件类型:** 通过`event->type()`可以获取事件对象的类型。 2. **类型转换(如果需要):** 如果你知道事件是某个特定类型的事件,可以使用`static_cast`或`dynamic_cast`将`QEvent`对象转换为相应的事件子类,以便获取更多的事件信息。 3. **获取事件属性:** 事件对象的子类通常有特定的方法或属性,用于获取事件的相关信息,例如鼠标位置、键盘按键等。

2023-10-14

Qt事件分发的Demo

在Qt中,事件分发是指当一个事件发生时,Qt系统决定应该把这个事件传递给哪个QWidget的过程。Qt中的事件分发主要通过`event(QEvent *event)`函数来实现。QWidget的所有子类都继承了`event()`函数,可以在该函数中处理不同类型的事件。 + **使用说明:** 1. **重载`event()`函数:** 在需要处理事件的QWidget子类中,可以重载`event(QEvent *event)`函数。在该函数中,你可以根据`event->type()`的值判断事件类型,并处理相应的事件。 2. **返回值:** 在`event()`函数中,你可以根据需要处理事件,并返回`true`表示事件已被处理,不再传递,返回`false`表示事件未被处理,将被传递到父组件或者进一步传递给其他子组件。

2023-10-14

Qt事件过滤器Demo

Qt事件过滤器(Event Filter)允许你在Qt应用程序中捕捉和处理事件,而无需修改原始的事件处理函数。使用事件过滤器,你可以在整个应用程序中截获和处理特定类型的事件,而不仅仅局限于单个控件。以下是Qt事件过滤器的使用说明和一个示例: + **使用说明:** 1. **安装事件过滤器:** 使用 `QObject::installEventFilter(QObject *filterObj)` 函数安装事件过滤器。这个函数将事件过滤器对象安装到指定的QObject上。 2. **重载事件过滤器函数:** 在事件过滤器类中,需要重载 `QObject::eventFilter(QObject *watched, QEvent *event)` 函数。这个函数将会在被安装事件过滤器的对象上的所有事件发生时被调用。 3. **处理特定类型的事件:** 在事件过滤器函数中,你可以通过 `event->type()` 检查事件的类型,并根据需要处理事件。

2023-10-14

QTreeWidget(树形列表框)

`QTreeWidget` 是 Qt 中用于显示树形结构的控件,每个节点可以包含子节点。以下是如何使用 `QTreeWidget` 的说明和一个简单的示例: **使用说明:** 1. **创建 QTreeWidget 对象:** ```cpp #include <QTreeWidget> ``` 2. **初始化 QTreeWidget:** ```cpp QTreeWidget *treeWidget = new QTreeWidget(this); ``` 这里创建了一个 `QTreeWidget` 控件。 3. **添加根节点:** ```cpp QTreeWidgetItem *rootItem = new QTreeWidgetItem(treeWidget); rootItem->setText(0, "Root Node"); ``` 使用 `QTreeWidgetItem` 类可以创建树节点,使用 `setText()` 函数可以设置节点的文本内容。 4. **添加子节点:**

2023-10-14

QListWidget(列表框)

`QListWidget` 是 Qt 中用于显示一个可选择的列表的控件,可以包含文本、图标等元素。以下是如何使用 `QListWidget` 的说明和一个简单的示例: **使用说明:** 1. **创建 QListWidget 对象:** ```cpp #include <QListWidget> ``` 2. **初始化 QListWidget:** ```cpp QListWidget *listWidget = new QListWidget(this); ``` 这里创建了一个 `QListWidget` 控件。 3. **添加条目:** ```cpp QListWidgetItem *item1 = new QListWidgetItem("Item 1"); QListWidgetItem *item2 = new QListWidgetItem("Item 2"); listWidget->addItem(item1); listWidget->addItem(item2);

2023-10-14

QTabWidget(选项卡窗口)

`QTabWidget` 是 Qt 中用于显示多个标签页的控件,每个标签页都可以包含不同的内容。用户可以通过点击不同的标签页来切换显示的内容。以下是如何使用 `QTabWidget` 的说明和一个简单的示例: **使用说明:** 1. **创建 QTabWidget 对象:** ```cpp #include <QTabWidget> ``` 2. **初始化 QTabWidget:** ```cpp QTabWidget *tabWidget = new QTabWidget(this); ``` 这里创建了一个 `QTabWidget` 控件。 3. **添加标签页:** ```cpp QWidget *page1 = new QWidget(); QWidget *page2 = new QWidget(); tabWidget->addTab(page1, "Tab 1"); tabWidget->addTab(page2, "Tab 2"); ``` 使用 `addT

2023-10-14

QDateTimeEdit(日期时间输入框)

`QDateTimeEdit` 是 Qt 中用于选择日期和时间的控件,它允许用户通过图形界面选择特定的日期和时间。以下是如何使用 `QDateTimeEdit` 的说明和一个简单的示例: **使用说明:** 1. **创建 QDateTimeEdit 对象:** ```cpp #include <QDateTimeEdit> ``` 2. **初始化 QDateTimeEdit:** ```cpp QDateTimeEdit *dateTimeEdit = new QDateTimeEdit(this); ``` 这里创建了一个 `QDateTimeEdit` 控件。 3. **设置日期和时间范围以及默认日期和时间:** ```cpp dateTimeEdit->setDateRange(QDate(2000, 1, 1), QDate(2100, 12, 31)); // 设置日期范围 dateTimeEdit->setTimeRange(QTime(0, 0, 0), QTime(23, 59, 59));

2023-10-14

QTimeEdit(时间输入框)

**使用说明:** 1. **创建 QTimeEdit 对象:** ```cpp #include <QTimeEdit> ``` 2. **初始化 QTimeEdit:** ```cpp QTimeEdit *timeEdit = new QTimeEdit(this); ``` 这里创建了一个 `QTimeEdit` 控件。 3. **设置时间范围和默认时间:** ```cpp timeEdit->setTimeRange(QTime(0, 0, 0), QTime(23, 59, 59)); // 设置时间范围 timeEdit->setTime(QTime::currentTime()); // 设置默认时间为当前时间 ``` 使用 `setTimeRange()` 函数可以设置时间的范围。使用 `setTime()` 函数可以设置默认的时间。 4. **获取选择的时间:** ```cpp QTime selectedTime = timeEdit->time();

2023-10-14

QDateEdit(日期输入框)

`QDateEdit` 是 Qt 中用于选择日期的控件,它允许用户通过图形界面选择特定的日期。以下是如何使用 `QDateEdit` 的说明和一个简单的示例: **使用说明:** 1. **创建 QDateEdit 对象:** ```cpp #include <QDateEdit> ``` 2. **初始化 QDateEdit:** ```cpp QDateEdit *dateEdit = new QDateEdit(this); ``` 这里创建了一个 `QDateEdit` 控件。 3. **设置日期范围和默认日期:** ```cpp dateEdit->setDateRange(QDate(2000, 1, 1), QDate(2100, 12, 31)); // 设置日期范围 dateEdit->setDate(QDate::currentDate()); // 设置默认日期为当前日期 ``` 使用 `setDateRange()` 函数可以设置日期的范围。使用 `setDate()` 函

2023-10-14

QProgressBar(进度条)

`QProgressBar` 是 Qt 中用于显示任务进度的控件,它可以用来展示任务的完成百分比或进度。以下是如何使用 `QProgressBar` 的说明和一个简单的示例: **使用说明:** 1. **创建 QProgressBar 对象:** ```cpp #include <QProgressBar> ``` 2. **初始化 QProgressBar:** ```cpp QProgressBar *progressBar = new QProgressBar(this); ``` 这里创建了一个 `QProgressBar` 控件。 3. **设置范围和当前值:** ```cpp progressBar->setRange(0, 100); // 设置范围为 0 到 100 progressBar->setValue(50); // 设置当前值为 50 ``` 使用 `setRange()` 函数可以设置进度条的范围,`setValue()` 函数可以设置当前的进度值。 4. **更新

2023-10-14

QSlider(滑块)Demo

`QSlider` 是 Qt 中用于选择一个数值范围内的整数值的滑动条控件。它允许用户在一个范围内滑动滑块,选择一个整数值。以下是如何使用 `QSlider` 的说明和一个简单的示例: **使用说明:** 1. **创建 QSlider 对象:** ```cpp #include <QSlider> ``` 2. **初始化 QSlider:** ```cpp QSlider *slider = new QSlider(Qt::Horizontal, this); // 水平滑动条 // 或者 // QSlider *slider = new QSlider(Qt::Vertical, this); // 垂直滑动条 ``` 这里创建了一个 `QSlider` 控件,可以选择水平或垂直方向的滑动条。 3. **设置范围和步长:** ```cpp slider->setMinimum(0); slider->setMaximum(100); slider->setSingleStep(1); /

2023-10-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除