自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 《企业来宾接待管理系统》数据库操作代码

为了实现《接待管理系统》的功能,需要设计并创建数据库表来存储相关信息。创建表:管委会接待审批查询(committee_approval_query)创建表:管委会接待审批表(committee_approval)创建表:来宾报告查询(guest_report_query)创建表:来宾报告单(guest_report)创建表:人员信息(personnel_info)

2024-03-07 01:19:59 52

原创 Qt编译程序时提示 C2447: “{”: 缺少函数标题(是否是老式的形式表?)

C++编译器错误 C2447 表示在编译过程中遇到了函数缺少声明或者声明不正确的问题。通常情况下,这种错误会出现在没有正确声明函数却在代码中使用该函数的情况下。这个错误从来若是按照正常的理解,就是C2447错误的解决,但是,实际上,这个错误是以下这个函数导致。所以我试着把注释改为/*设置为开机启动*/编译器无法找到函数的声明,因此会报错。无论从哪里看,都看不出来到底错在哪里。

2024-02-22 00:02:13 699

原创 VMware Ubuntu 无网卡驱动怎么办?

ether 00:0c:29:27:7e:e8 txqueuelen 1000 (以太网)然后,开启虚拟机的桥接模式,我这里是WiFi,所以选这个,大家自己可以尝试尝试。ifconfig命令一看,只有lo的本地回环网卡,没有真实网卡驱动。网上拷了一个VMware的Ubuntu系统,结果网络没法连接。首先,iplink show查看本地所有网卡。所以,我们这里就需要激活这个网卡驱动就行。最后,自己ping一下baidu就可以了。我这里出现了一个ens33的网卡驱动,最后,开启dhcp,分配IP。

2024-02-18 15:56:10 644

原创 Qt3D QConeMesh圆锥体模型类使用说明,附完整示例代码

通过调整圆锥体的属性,如半径、长度、圆环数量和切片数量,可以根据需要自定义圆锥体的形状。然后将圆锥体添加到场景中,即可在Qt3D视图窗口中显示出来。使用Qt3D的QConeMesh类可以方便地创建圆锥体模型。

2024-01-18 23:21:20 122

原创 C++98,C++11、C++14 和 C++17,C++20,我应该用哪个C++标准?

这些只是C++17引入的一些新特性的概要介绍,还有其他一些细微的语言改进和库的改进。如果你在遗留代码或旧项目中工作,并且使用的是较旧的编译器,那么C++98可能是你的选择。2. 统一的初始化语法:引入了统一的初始化语法,可以使用花括号来初始化变量和对象,避免了一些初始化相关的问题。3. 右值引用和移动语义:引入了右值引用(&&)和移动语义,可以实现高效的资源管理和移动语义,提高程序的性能。6. 强制拷贝消除:通过引入新的规则,C++17中的编译器可以自动优化掉不必要的拷贝操作,提高程序的性能。

2024-01-11 01:22:02 550

原创 Qt3D QGeometryRenderer几何体渲染类使用说明

2. 创建一个QBuffer对象,并使用setData()方法将几何数据存储到缓冲区中。4. 创建一个QGeometryRenderer对象,并使用setGeometry()方法将QGeometry对象关联到渲染器中。7. 创建一个QEntity对象,并将QGeometryRenderer和QMaterial对象添加到实体中。// 创建QGeometryRenderer对象。// 将属性对象添加到QGeometry对象。// 将缓冲区关联到QGeometry对象。// 创建QGeometry对象。

2024-01-04 22:44:15 896

原创 opengl和directx中,渲染管线是什么?

这些阶段和操作的顺序和细节可能会有所不同,但整体的目标都是实现高效的图形渲染,所谓渲染,就是比单纯的画图多了很多动作处理,所以我们要明白,本质是一样的,只是实现方式不同而已。2. 光栅化阶段(Rasterization Stage):该阶段与OpenGL的光栅化阶段类似,将处理后的几何数据转换为像素数据,并进行插值、纹理采样等操作。实际上,在OpenGL和DirectX中,渲染管线(Rendering Pipeline)是指将输入的几何数据转换为最终渲染图像的一系列阶段和操作的过程。

2024-01-04 22:32:45 429

原创 Qt OpenGL中渲染和画图的相互理解

因为我们不仅仅只是画个球体,正方体,加载一个3D模型(对应2D图片),3D里面更重要的是特效,也就是材质,纹理,光照,立体空间的效果。而渲染则更广泛地指的是将3D模型、纹理、光照等元素结合起来,以图形的形式呈现在屏幕上的过程。因此,画图更偏向于绘制简单的2D图形,而渲染更偏向于将复杂的3D场景绘制在屏幕上,并包含了更多的计算和效果。在Qt编程(或者别的图形编程中),我们很容易理解画图,一般用draw之类的函数,画圆,画线,画点,画复杂图形,画图片等2D图形。画图常用于绘制简单的图形、图标、文字等。

2024-01-03 00:55:22 543

原创 C++项目之酒店客房管理系统架构——设计模式应用场景详解(下)

客房管理系统定义了创建客房、客房入住和客房退房的抽象方法,酒店客房管理系统实现了这些方法。std::cout

2023-12-30 01:58:53 1266

原创 C++项目之酒店客房管理系统架构——设计模式应用场景详解(中)

例如,可以定义不同的房价策略、预订策略和入住策略,使系统更加灵活和可配置。通过策略模式,我们可以在运行时灵活地切换不同的策略对象,从而实现不同的行为。std::cout

2023-12-30 01:29:33 990

原创 C++项目之酒店客房管理系统架构——设计模式应用场景详解(上)

通过一个工厂类来创建客房对象,可以使系统更加灵活和可扩展。客房是有分类的,譬如单人间,标准间,大床房,海景房,三人四人,特价小时房等房间。客户端使用相应的工厂类创建客房,并通过客房对象调用相应的方法。// 实现预订客房的逻辑。// 使用单人间工厂创建客房。// 使用双人间工厂创建客房。定义了创建客房的接口,具体工厂类。// 具体工厂类 - 单人间工厂。// 具体工厂类 - 双人间工厂。// 抽象工厂类 - 客房工厂。// 具体产品类 - 单人间。// 具体产品类 - 双人间。// 创建单人间工厂。

2023-12-30 01:18:27 1170

原创 C++/Qt版酒店客房管理系统代码详解——报表统计模块

代码中,我们创建了一个名为`ReportWidget`的自定义QWidget类,用于显示报表统计模块的界面。在构造函数中,我们创建了标题标签、类型下拉框、表格和生成报表按钮,并使用垂直布局将它们添加到主窗口中。在`generateReport`槽函数中,我们可以实现生成报表的逻辑。在Qt中,可以使用Qt Charts模块来生成报表。// 可以使用数据库查询数据,并将结果显示在表格中。5.报表统计模块:用于生成各种统计报表,如入住率报表、收入报表等。// 在这里实现生成报表的逻辑。// 创建柱状图数据集。

2023-12-30 01:01:36 1096

原创 C++/Qt版酒店客房管理系统代码详解——入住管理模块

QMessageBox::information(this, "入住", "成功入住客房号:" + QString::number(roomNumber));最后,在`main()`函数中,我们创建了一个`QApplication`对象和一个`RoomManagementSystem`对象,并显示酒店客房管理系统窗口。代码中,我们创建了一个名为`Room`的客房类,它有一个成员变量`m_number`表示客房号,以及一个`getNumber()`方法用于获取客房号。// 添加客房号到下拉框。

2023-12-30 00:15:06 1012

原创 C++ STL中如何像Qt那样处理父子对象的关联

Parent类包含一个子对象的容器,可以通过`addChild()`方法将子对象添加到父对象中,并在子对象的`setParent()`方法中设置父对象的指针。通过这种方式,可以建立父子对象之间的关联关系,并在需要时访问父对象或子对象。在C++ STL(Standard Template Library)中,并没有内置的机制来处理父对象和子对象的关系,因为STL主要是提供了一组容器、算法和迭代器等工具来操作数据,而不涉及对象间的父子关系管理。通过这种方式,你可以手动管理父子对象的创建、销毁和访问关系。

2023-12-28 00:13:54 326

原创 Qt输入框候选项输入历史联想QCompleter使用示例代码

当用户在QLineEdit中输入文本时,QCompleter会根据输入的文本显示相应的候选项。用户可以通过键盘上下箭头键选择候选项,或者通过鼠标单击选择候选项。选择候选项后,QLineEdit将显示所选候选项的文本。// 将QCompleter对象设置为QLineEdit的自动完成器。// 创建一个QCompleter对象,并将候选项设置为字符串列表。// 创建一个字符串列表作为自动完成的候选项。// 设置自动完成的模式为Popup模式。// 创建一个QLineEdit对象。

2023-12-26 22:35:03 567

原创 C++/Qt版餐厅点餐系统模块代码详解——点餐模块

QString orderMessage = "您选择了以下菜单:\n" + selectedMenuItems.join("\n");QMessageBox::information(this, "提示", "请选择要点的菜单项");QMessageBox::information(this, "下单成功", orderMessage);menuListWidget->addItem("麻婆豆腐");menuListWidget->addItem("红烧肉");// 获取选中的菜单项。

2023-12-26 22:18:02 681

原创 C++/Qt版餐厅点餐系统模块代码详解

代码中,用户可以通过点击"Add Item"按钮来添加菜单项,弹出一个对话框让用户输入菜品的名称、描述和价格。添加菜单项后,菜单列表会自动更新显示所有的菜单项。

2023-12-26 22:11:37 753

原创 C++/Qt版OA办公管理系统通知公告模块

这里展示了一个通知公告模块窗口,其中包括一个通知公告列表和一个添加通知公告的按钮。点击添加按钮后,会弹出一个对话框,用户可以输入通知公告的标题和内容。点击确认按钮后,将会创建一个通知公告对象,并将其添加到通知公告列表中。// 创建对话框输入通知公告标题和内容。// 将通知公告添加到列表中。// 创建通知公告对象。// 创建添加通知公告按钮。// 创建通知公告列表。// 创建通知公告模块窗口。// 自定义通知公告模块窗口类。// 自定义通知公告类。

2023-12-26 21:50:32 515

原创 C++/Qt版OA办公管理系统模块代码分析——组织架构模块

在Organization类中,我们实现了一些基本的功能,如添加部门、添加员工、获取所有部门和获取指定部门的所有员工等。记得在项目中添加Qt SQL模块的依赖,并根据实际情况修改数据库连接和初始化部门和员工数据的代码。代码中包括创建部门类、员工类和组织架构类,以及实现了一些数据库连接的功能。// 初始化部门和员工数据。// 插入部门数据到数据库。// 插入员工数据到数据库。// 创建部门员工关联表。// 关闭数据库连接。// 获取指定部门的所有员工。1.组织架构模块代码。

2023-12-26 21:45:02 347

原创 Raccoon 推荐系统框架入门示例

以下是使用Raccoon推荐系统库的一些示例代码:1. 安装Raccoon库:```python```2. 导入所需的库:```python```3. 创建一个推荐系统实例:```python```4. 添加用户和物品:```python```5. 添加用户对物品的评分:```python```6. 计算用户之间的相似度:```python```7. 根据用户的历史行为进行推荐:```python```

2023-12-26 15:09:59 360

原创 C++药房管理系统设计模块代码分析

然后通过用户输入的用户名和密码,调用UserManager的loginUser方法进行登录验证,如果登录成功,则输出"登录成功",否则输出"登录失败"。std::cout

2023-12-25 21:19:44 1120

原创 Qt程序pro中如何设置运行时库的位置

在Qt程序的.pro文件中,可以使用`QMAKE_RPATHDIR`变量来设置运行时库的位置。`QMAKE_RPATHDIR`用于指定运行时库的搜索路径,可以是一个绝对路径或相对于生成的可执行文件的路径。将`/path/to/runtime/library`替换为实际的运行时库路径。在构建和运行程序时,系统会在指定的路径中搜索所需的运行时库。需要注意的是,`QMAKE_RPATHDIR`只在Linux和macOS上有效。在Windows上,Qt使用系统的动态链接库搜索路径。

2023-11-06 00:40:31 1177

原创 vscode如何增大编辑字体

1. 打开 VS Code,点击左上角的 "文件"(File)菜单,选择 "首选项"(Preferences),然后选择 "设置"(Settings),或者使用快捷键 `Ctrl + ,`。5. 在该设置项下方的输入框,输入你想要使用的字体名称,例如 "Consolas, 'Courier New', monospace"。如果你只想增大当前工作区的字体,在工作区设置选项卡中进行设置。6. 然后,再搜索框中输入 "editor.fontSize",找到 "Editor: Font Size" 设置项。

2023-10-26 00:07:24 5132

原创 C++中传引用和传指针的区别

1. **初始化和绑定**:引用在声明时必须被初始化,并且一旦一个引用被绑定到一个对象,就不能再被重新绑定到另一个对象。而指针可以在任何时候被重新指向另一个对象。3. **间接性**:指针是间接的,它保存的是对象的地址,需要额外的解引用操作来访问对象。7. **语法**:在语法上,引用使用起来更直观、更像变量,而指针需要使用解引用操作符(*)来访问其内容。4. **可复制性**:引用可以复制,且复制后的引用和原引用引用同一个对象。2. **空值**:指针可以为空,而引用始终必须绑定到一个存在的对象。

2023-10-25 17:41:57 96

原创 函数参数传变量和传引用,QString a 和QString &a 有什么区别,哪种更好

2. `QString &a`:在这种情况下,参数`a`是一个引用,这意味着函数将直接访问原始字符串,而不是创建副本。因此,对参数`a`的任何更改将直接影响原始字符串。但是,由于直接修改了原始数据,因此这种方式需要小心处理,以避免意外修改了不应该修改的数据。1. `QString a`:在这种情况下,参数`a`是一个值,函数将创建参数的一个副本。如果你需要保留原始字符串不变,那么使用`QString a`更好。如果你需要修改原始字符串,并且希望避免创建副本的开销,那么使用`QString &a`更好。

2023-10-25 17:37:10 202

原创 c++中free和delete有什么区别

1. 适用对象不同:free 用于释放动态分配的内存(通过 malloc、calloc 或 realloc 函数分配的内存),而 delete 用于释放通过 new 操作符分配的内存。3. 释放方式不同:free 只释放内存,不会调用对象的析构函数;而 delete 释放内存时会自动调用对象的析构函数。2. 操作方式不同:free 函数需要显式调用,而 delete 会在对象超出作用域时自动调用。4. 空指针检查:使用 free 时需要检查指针是否为空,而 delete 则不需要。

2023-10-24 17:08:11 496

原创 ubuntu如何配置程序崩溃时的core文件

3. 找到 `core file size` 设置,将其更改为您希望允许生成的最大 core 文件大小。4. 要使更改永久生效,请编辑 `/etc/security/limits.conf` 文件。现在,当您的程序崩溃时,系统将生成 core 文件,其中包含有关程序状态的信息。5. 保存并关闭文件。

2023-10-24 15:57:29 148

原创 ubuntu如何配置core文件名称

在Ubuntu中,可以通过编辑`/etc/sysctl.conf`文件来配置core文件名称。这行配置将生成名为`core-<pid>-<time>`的core文件,其中`<pid>`是进程ID,`<time>`是生成core文件的时间。请注意,core文件的生成可能取决于系统设置和程序本身。有些程序可能会在崩溃时生成core文件,而有些则不会。现在,当程序崩溃时,将生成命名的core文件。添加配置后,保存并关闭文件。

2023-10-24 15:54:34 113

原创 微信小程序中block和View组件的使用区别

而View组件是用于显示内容和布局的,可以设置样式属性,生成实际的节点。- Block组件是一个无实际显示效果的组件,它主要用于包裹一组组件,并提供了类似于div的作用。在微信小程序中,block和View组件都是用于布局的组件,但它们在使用方式和功能上有一些区别。- View组件是微信小程序中最常用的组件之一,类似于HTML中的div标签。- 使用Block组件可以将一组组件进行分组,便于样式的管理和控制。- View组件是一个具有实际显示效果的组件,它用于显示内容和布局。

2023-10-22 15:44:40 864

原创 Qt并发编程的5种方式总结

5. 事件驱动:Qt 的 QIODevice 类和 QEventLoop 类可以用于实现事件驱动的并发编程。通过 QIODevice 类读取数据,并在 QEventLoop 类中处理事件,可以实现高效的并发编程。3. 异步操作:Qt 提供了 QTimer 类和 QObject::startTimer() 函数,可以用于实现异步操作。2. 信号与槽:Qt 的信号与槽机制可以用于实现解耦,将不同线程中的对象进行通信。信号可以在一个线程中发出,然后在另一个线程中的槽函数中进行处理。

2023-10-20 13:43:53 275 1

原创 C++序列化处理是什么意思?简单案例讲解

这个例子中,`serialize`函数将`Person`对象的状态转换为字节流,存储在`std::stringstream`中。`deserialize`函数则将字节流恢复为`Person`对象的状态。C++序列化处理是将对象的状态转换为字节流的过程,以便于存储和传输。反序列化则是将字节流恢复为对象的状态。Person person("张三", 30);Deserialized: 张三,30。Serialized: 张三 30。

2023-10-20 13:08:00 84 1

原创 C++并发编程有哪些方式

6. 并行算法库:使用C++标准库中的并行算法库(std::execution)来实现并行化的算法,利用多核处理器的并行能力提高程序性能。4. 原子操作:使用原子类型(std::atomic)来进行原子操作,确保多个线程对同一变量的读写操作是原子的,避免竞态条件。1. 多线程:使用C++标准库中的线程类(std::thread)或操作系统提供的线程库,创建多个线程来并发执行任务。5. 信号量:使用信号量(std::semaphore)来控制多个线程的并发访问,可以限制同时访问某个资源的线程数量。

2023-10-20 10:01:53 70 1

原创 人力资源管理系统模块分析与架构设计总结

3. 数据访问层:负责与数据库交互,进行数据的增删改查操作。7. 数据分析层:负责对人力资源数据进行分析和挖掘,提供数据报表、数据可视化和决策支持等功能。5. 安全层:负责系统的安全管理,包括用户身份认证、权限控制、数据加密等功能。可以采用web界面或移动应用程序,包括登录、系统菜单、用户权限设置等功能。6. 日志与监控层:负责记录系统的运行日志和异常情况,以及对系统进行性能监控、错误监测和性能调优等功能。4. 集成层:负责与其他系统进行集成,比如与企业的财务系统、考勤系统、招聘系统等进行数据交换和共享。

2023-10-15 19:26:22 150 1

原创 qt qml卡顿问题如何解决

2. 异步处理:对于耗时的操作,例如网络请求或复杂的计算,可以考虑将其放在后台线程或异步任务中处理,以避免阻塞主线程。可以使用Qt提供的异步功能,如QtConcurrent或QThread,或者使用JavaScript中的async/await或Promise等机制。尽量避免使用过多的嵌套组件、大量的重复计算或频繁的属性绑定,以减少QML的计算负担。3. 图像优化:如果应用中使用了大量的图像资源,可以考虑对图像进行优化,如降低分辨率、压缩图像质量等,以减少加载和绘制的开销。

2023-09-07 12:10:49 1170

原创 gdb常用调试命令

1. 启动GDB:在终端中使用`gdb`命令启动GDB。5. 查看变量:使用`print`或`p`命令查看变量的值。您可以使用`help`命令获取更多帮助和了解更多GDB的使用方法。3. 运行程序:使用命令`run`或`r`来运行程序。4. 单步执行:使用`next`或`n`命令逐行执行程序。使用`step`或`s`命令进入函数内部,逐语句执行。7. 查看堆栈:使用`backtrace`或`bt`命令查看当前的堆栈跟踪。9. 退出GDB:使用`quit`或`q`命令退出GDB。

2023-09-07 10:23:08 116

原创 qt中控件的mouseTracking有什么作用

当`mouseTracking`属性设置为`true`时,控件会实时捕捉鼠标的移动事件,即使鼠标没有按下任何按钮。而当`mouseTracking`属性设置为`false`时,控件只会在鼠标按钮被按下时才捕捉鼠标移动事件。需要注意的是,开启`mouseTracking`属性可能会增加程序的处理负担,因为控件需要实时监测鼠标的移动。因此,在需要使用`mouseTracking`属性的控件上使用时,要考虑到性能的影响,避免不必要的开启。

2023-09-05 11:36:24 224 1

原创 如何在程序中设置Qt的字体环境变量?

可以通过设置`QT_FONTDIR`环境变量来指定自定义字体文件所在的目录。在运行Qt应用程序时,Qt会在`QT_FONTDIR`指定的目录中搜索字体文件,并将其加载到字体数据库中。请注意,设置`QT_FONTDIR`环境变量后,需要重新运行Qt应用程序才能生效。此外,确保指定的目录中包含正确的字体文件,并且文件路径是正确的。在qt中,`fonts`目录环境变量是`QT_FONTDIR`。

2023-09-04 14:32:02 209 1

原创 qt有哪些常用的环境变量

5. QT_QPA_PLATFORM_PLUGIN_PATH:指定平台插件目录的路径,用于加载Qt平台插件。2. QT_PLUGIN_PATH:指定插件目录的路径,用于加载Qt插件。4. QML2_IMPORT_PATH:指定QML2模块的导入路径。9. QT_DEBUG_PLUGINS:启用Qt插件的调试输出。6. QT_QPA_PLATFORM:指定Qt使用的平台插件。7. QT_QPA_FONTDIR:指定字体文件的目录路径。8. QT_QPA_FONTNAME:指定默认的字体名称。

2023-09-04 14:29:26 1376 1

原创 OpenGL中着色器使用说明

在此示例中,我们希望每个片元都是红色,因此我们将 `fragColor` 设置为 RGBA 值为 `(1.0, 0.0, 0.0, 1.0)` 的向量。这意味着红色通道的值为1.0,绿色和蓝色通道的值都为0.0,透明度通道的值也为1.0。例如,在顶点着色器中,它处理图形的几何形状和位置,而在片元着色器中,它处理像素的颜色和光照效果。顶点着色器是对每个顶点进行计算的程序,它通常用来转换顶点坐标和属性以及进行变换矩阵计算。片元着色器是对每个像素进行计算的程序,它通常用来计算像素的颜色和光照效果。

2023-08-21 14:27:26 225 1

原创 qml中布局的边距设置问题

在qml中,使用Row,RowLayout,ColumnLayout等布局组件的时候,需要注意,topMargin之前必须要先有一个top的对齐设置,否则margin无法生效。

2023-08-21 14:15:32 206 1

空空如也

空空如也

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

TA关注的人

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