自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 wxWidgets codeblocks代码中文显示出错,error: converting to execution character set: Illegal byte sequence

第二:代码文件本身编码不是UTF-8这种编译器通常支持的编码,譬如Windows下有的编辑器或者你用某些IDE,文本编辑器打开后,它自动给你转成了其他编码,就像代码里我们使用open函数打开的时候一样,有些程序它在打开文件的时候,会加上一些编码设置,导致和你本来的编码不一致的现象,正如此处,CodeBlocks如果不经过设置,默认创建代码文件使用的就是ANSI,Windows936编码格式,所以当你使用gcc编译器的时候,有些中文问题就会显示。1.可以使用_(下划线)转码中文,而不是wxT。

2024-12-07 16:29:49 172

原创 wxWidgets布局管理及XRC界面使用解惑

第4点,也是最重要的一点,比起Qt的方便,在wxWidgets中,布局管理器中的子界面想要访问父界面元素,或者与父界面通信,或者仅仅只是布局,一定要注意,子界面的parent是谁,qt里面我们通常一个this,到哪都可以布局,但在wxWidgets中不行,如果你的构造函数里的parent是panel,那就只是panel,若是parent是Button,而你想要访问该界面所在的panel界面元素,那就是爸爸的爸爸,GetParent()->GetParent(),这里要尤其分清和注意。

2024-11-08 08:30:17 590

原创 wxWidgets开发最佳IDE选哪个?界面设计器选wxSmith还是wxFormBuilder,wxCrafter?

qt不支持makefile,eclipse cdt也可以,但是这里的makefile是由CodeBlocks的cbp2make工具生成的,这些ide都不单独生成makefile,只是管理代码,编译运行。虽然codelite也不错,但是今天试用了一下,入门似乎不是很顺利,相对于CodeBlocks,codelite在编辑代码上好了很多,虽然同样没有类大纲视图,但是更方便了一小步。你将体会到什么叫做界面和逻辑分离,界面复用的好处,而这个优点,将能够让你反思,原来分离可以这样做,但是稍微多写了些代码。

2024-10-22 23:55:17 1230

原创 Qt6的获取调色板颜色和Qt5不一样了

而Qt6更加直接了,[static] QColor QColorDialog::getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), ColorDialogOptions options = ColorDialogOptions())返回的直接就是QColor,而不是QRgba了。

2024-06-15 01:37:22 143

原创 项目管理之进度管理的“必须”误区

我们经常会听到某某上司,某某领导跟下属说,“这个工作必须今天完成,你加个班”,下属只能诺诺同意,没办法,打工人只能服从,若要抗议,得做好心理准备。当然了,有些比较大条的同志会说“完不成,太多了,太难了”,领导估计接着就会板着脸跟你说,“有什么问题,哪里难”。实际上,如果任务安排下去,首先需要进行分解,以人天为单位对任务进行WBS分解,直到确定任务完成时间,对于不确定因素,应该提前讨论审核,而不是张口闭口就是必须完成,毫无说服力。没有科学的管理依据,胡乱管理,最终成本超支,进度迟滞,项目失败,损失惨重。

2024-06-13 12:26:25 170

原创 Qt6 error: C2039: “setMargin“: 不是 “QHBoxLayout“ 的成员

出现这个错误,是因为Qt6中QHBoxLayout已经没有setMargin函数了,所以,以后,我们要使用setContentsMargins(0,0,0,0)来替代它了。诸如此类错误,我们可以直接搜索该函数,Qt6的帮助文档自有说明。

2024-06-11 23:52:41 566

原创 CMake project configuration failed. No CMake configuration for build type “Debug“ found.解决办法

但是它又反复提示这个错误,无法清除,所以只能看看cmake到底发的什么神经。在构建配置选项下有一个重新配置初始参数的按钮。先前创建过一个cmake项目,后来关闭QtCreator之后,出现了一个没有debug模式的错误,仔细看了看构建配置,发现并无异常。Qt6以上的工程都已经开始使用cmake了。所以qmake淘汰在即,以后我们开发创建项目尽量以cmake为主。如果你也遇到同类问题,不妨试一试我的方法吧。

2024-06-10 20:02:29 3115 2

原创 Qt6弃用了QRegExp,改为QRegularExpression

实际上,一开始,可能你创建的类没有什么功能,可能只有一个匹配模式的函数,但是随着后面想法多了,这个类的作用越来越精细,函数不断增多,一开始你把动作都放在信息类之中,慢慢地这个类太大了,臃肿了,所以你需要拆分出来。原来我们用QRegExp的时候,直接用正则表达式对象去match()一个字符串,看是否返回true,就可以判断该字符串是不是我们想要的格式了。从单一职责原则来看,这三个类可以作为样板,以后我们创建类的时候,尽量按照,类信息,类动作,类交互三个角度去思考。//判断是否是IP地址。

2024-06-06 00:27:18 1057

原创 Qt如何让按钮的菜单出现在按钮的右侧

QAction* actXiangMuZhangCheng = new QAction("项目章程");直接上代码,我们用到了一个eventfilter的函数功能。这个函数比较厉害和重要,大家务必经常拿出来看看。

2024-06-05 08:35:51 535

原创 2024年上半年高级信息系统项目管理师考后总结

每科75分,每科45分才算合格,是每科,不是单科,所以对于第一次考,而且准备时间没有超过半年,或者是十大领域论文没有写全过,教材课后练习没有做全看全,真题没刷过,案例分析没刷过,没有系统听过课,(譬如某bilibili上的课),那么你极有可能考不过,你应该需要两次或者三次,直到你觉得自己做完了以上功课,信心大增的时候。之所以说记得越多,并不是让你死记那些课本上的文字,而是说,记得越多的题,做的题多了,那个公式记得牢固,这个考试非常轻松,反之,公式没记住,白搭。没办法,年纪大了,不考考证,没法混啊。

2024-06-02 23:29:48 428

原创 Firefox浏览器网页上的按钮点击无效解决办法

在Firefox浏览器的设置里面,去掉一些cookies的禁用即可。之后,就可以点击按钮成功响应了。

2024-05-29 01:17:02 2369

原创 2024高级信息系统项目管理师考前背诵考点集:质量管理篇

2、管理质量的主要作用:1.提高实现质量目标的可能性。使用控制质量过程的数据和结果向干系人展示项目的总体质量。3、质量审计师对其他质量管理活动的结构性审查,是决定一个项目质量活动是否符合组织政策、过程和程序的独立的评估。5.管理系统的识别 6.持续改进 7.基于事实的决策方法 8.与供方互利的关系。5.控制质量过程的作用之一是确定项目输出是否达到预期目的,这些输出需要满足所有使用标准、要求、法规和规范。1、可以用于快速收集项目质量要求,制约因素,依赖关系和联系的数据表现技术是思维导图。

2024-05-23 00:36:31 254

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

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

2024-03-07 01:19:59 138

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

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

2024-02-22 00:02:13 2800

原创 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 979

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

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

2024-01-18 23:21:20 215

原创 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 1673

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

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

2024-01-04 22:44:15 1256

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

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

2024-01-04 22:32:45 565

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

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

2024-01-03 00:55:22 640

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

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

2023-12-30 01:58:53 1364

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

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

2023-12-30 01:29:33 1082

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

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

2023-12-30 01:18:27 1342

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

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

2023-12-30 01:01:36 1291

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

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

2023-12-30 00:15:06 1251

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

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

2023-12-28 00:13:54 372

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

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

2023-12-26 22:35:03 846

原创 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 1288

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

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

2023-12-26 22:11:37 1062

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

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

2023-12-26 21:50:32 681

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

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

2023-12-26 21:45:02 483

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

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

2023-12-26 15:09:59 431

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

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

2023-12-25 21:19:44 1487

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

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

2023-11-06 00:40:31 2602

原创 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 8890

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

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

2023-10-25 17:41:57 202

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

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

2023-10-25 17:37:10 407

原创 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 1050

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

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

2023-10-24 15:57:29 308

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

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

2023-10-24 15:54:34 194

空空如也

空空如也

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

TA关注的人

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