欢迎来到小面包的小站🥝
opengl和qt交互
Qt 和 OpenGL 交互 当在 paintGL 之外的地方重新绘制(比如按下按钮),则需要调用 widget 的 update() 来重新更新。 若要从其他地方调用 OpenGL 函数(即不在 paintGL、resizeGL 等函数中),需要先调用 makeCurrent。 注意事项 如果要设置控件是否是选中的状态,可以使用带布尔值的"转到槽"。
绘制一个三角形-opengl
绘制一个三角形 流程概述 CPU上的顶点数据:首先,我们有一组顶点数据,存储在CPU内存中。 发送到VBO(GPU缓冲区):将这些顶点数据打包并发送到VBO(顶点缓冲对象),VBO是GPU中的缓冲区。 VAO告诉GPU如何处理数据:VAO(顶点数组对象)用于告诉GPU如何处理这些数据,包括数据的位置和格式。 问题描述 在初始化阶段,我们绑定了VAO和VBO,将数据传入显存,并告诉GPU如何解析这些数据。之后,我们解绑了VAO和VBO。 在绘制阶段(例如调用paint函数时),我们重新绑定了VAO,但没有绑定VBO。 问题分析 在OpenGL中,VAO的作用是记录VBO的配置信息。一旦VAO记录了VBO的配置(包括数据格式和位置),在绘制时只需要绑定VAO即可,不需要再次绑定VBO。这是因为VAO已经存储了VBO的相关信息。 因此,在绘制阶段只需要绑定VAO,OpenGL会自动使用VAO中记录的VBO配置。 示例代码 以下是绘制三角形的代码片段,展示了VAO和VBO的绑定与解绑: 1234567891011121314151617181920212223242526272829303 ...
opengl+qt初尝试
我的OpenGL + Qt初次使用日记 今天,我开启了OpenGL与Qt结合使用,以下是我初次使用过程中的操作记录。 1. 创建Qt的MainWindow 我首先使用cmake来正常创建Qt项目的MainWindow 2. 编辑菜单 完成MainWindow的创建后,我着手编辑菜单。菜单编辑过程没有遇到太大阻碍 3. 添加工具栏(Tool Bar)和操作(Action) 添加工具栏:在编辑过程中,我很直观地发现右键点击相关区域就可以轻松加入一个工具栏。这个操作很简便,使得界面布局变得更加丰富和可定制。 添加操作(Action):接着,我注意到点击下方左边的一个New选项,就可以增加一个action。 虽然这是初次将OpenGL与Qt结合使用,但在这个过程中我对Qt框架的基本操作有了进一步的认识,也为后续探索OpenGL和Qt在图形渲染、界面构建等方面的复杂交互打下了良好的基础。
关于mysql容器内部数据消失/二更:第一次遇到黑客
记录并分析MySQL容器数据丢失问题的排查过程和解决方案
数据中台配置记录
title: 配置与部署 ElasticSearch、Kibana 和 Golang 环境 categories: 数据中台 部署 开发环境 在开发数据中台项目时,我们需要配置和部署 ElasticSearch、Kibana 以及 Golang 开发环境。以下是我在配置这些工具时的完整记录。 配置 ElasticSearch 和 Kibana 1. 下载并保存 ElasticSearch 公钥 首先,下载并保存 ElasticSearch 的公钥: 1wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo tee /etc/apt/trusted.gpg.d/elasticsearch.asc 2. 添加 ElasticSearch 仓库 APT 源 12sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list. ...
我关于git曾经使用过的命令
Git 和网络代理相关的曾经使用过的命令 Git 命令 很多人学习git的时候,命令五花八门的,我认为总结一些常用的命令是很重要的,以下是本人在开发过程中常用到命令 基本操作 12git initgit commit -m"" 添加文件 记录删除操作:1git add . 不记录删除操作:1git add --all 远程仓库 添加远程:12git remote add origin http... # 添加远程git remote add upstream https: # 添加上游 查看远程:1git remote -v 推送与拉取 12git push -u origin mastergit pull origin master 查看版本信息 查看版本号:1git reflog 查看最近 5 条版本信息:1git log -n 5 --oneline 版本回退 硬回退:1git reset --hard 版本号 软回退:1git reset --soft 6d3a76f 分支操作 创建并切换分支1g ...
docker compose 内部的mysql的链接
Docker Compose 内部的 MySQL 连接问题总结 问题描述 在使用 Docker Compose 部署 MySQL 容器时,我遇到了一些关于连接的问题。发现 MySQL 容器的配置文件位置似乎不太对,导致容器内部的数据库无法正常连接。 解决方案 为了解决这个问题,我需要确保在 Docker Compose 配置中正确指定了 MySQL 配置文件的位置。通过检查容器内的文件路径并调整 Docker Compose 配置文件中的设置,确保容器启动时能找到正确的配置文件。 小结 通过这次排查,我认识到 Docker Compose 内部 MySQL 容器配置文件路径的问题,以及它对容器连接的影响。确保正确配置路径和网络设置,是解决 MySQL 容器连接问题的关键。
关于mysql本机之外链接不上的问题和中文字符集
关于 MySQL 连接不上和中文字符集问题的总结 问题描述 在使用 MySQL 时,我遇到了一些连接问题,尤其是在处理中文字符集时出现了乱码。经过一些排查,我发现问题与 MySQL 的字符集设置有关。 修改字符集配置 在 Linux 系统中,可以通过编辑 MySQL 的配置文件来修改字符集。路径是 /etc/mysql/mysql.conf.d/mysqld.cnf,而在 Windows 系统中,通常是 my.ini 文件。 我修改了以下几个配置项来解决字符集问题: character-set-server: 设置服务器的默认字符集为 utf8mb4,这是 MySQL 最推荐的字符集,支持所有 Unicode 字符。 1character-set-server = utf8mb4 collation-server: 设置服务器的默认排序规则为 utf8mb4_unicode_ci,这是 utf8mb4 字符集的通用排序规则。 1collation-server = utf8mb4_unicode_ci init-connect: 在每个客户端连接时设置字符集为 utf8 ...
使用smtp服务
使用 SMTP 发送邮件的总结 初步尝试 在项目中,我需要实现邮件发送功能,于是决定使用 SMTP 协议来发送邮件。最初,我尝试使用 C++ 中的 curl 库进行连接,然而在连接时遇到了一些问题,主要是无法连接到服务器。 问题分析 使用的端口 587 被拒绝连接。经过排查,发现最初可能是由于编码问题导致无法正确连接。 虽然在 Python 中能成功连接 SMTP 服务,但在 C++ 中却无法连接成功。这让我陷入了困惑。 使用 Python 脚本解决问题 由于在 Python 中 SMTP 连接能够正常工作,我决定通过系统调用来直接运行 Python 脚本,解决 C++ 发送邮件的问题。最终,成功调用 Python 脚本实现了邮件发送功能。 12345678910111213import smtplibfrom email.mime.text import MIMETextmsg = MIMEText("Hello World")msg["Subject"] = "SMTP Test"msg["From& ...
关于web库抛出异常
关于 Web 库抛出异常的总结 问题起因 在处理报文时,舍友发送的报文中包含了微信的特殊字符,这导致了 JSON 数据格式不合法,最终抛出了 login 异常,导致程序崩溃。这个问题让我意识到需要更好地处理异常,避免程序直接终止。 异常分析 在分析过程中,我发现当 JSON 库在解析过程中遇到错误时,会抛出异常。而这个异常没有被正确处理,导致了程序的崩溃。为了避免这个问题,我决定在 http_task 中捕获报文体解析时抛出的异常,并记录日志,而不是让程序直接崩溃。 捕获异常与调试 通过查看函数调用堆栈,我能够准确定位到抛出异常的具体位置。基于此,我可以在正确的地方进行异常捕获,确保程序能够在遇到类似情况时优雅地处理异常。 使用 VSCode 作为调试器 为了进一步调试这个问题,我尝试使用 VSCode 作为调试器。按照原本的 CMake 配置进行操作,VSCode 成功地启动了调试会话,帮助我更容易地跟踪程序的执行流程。 虚拟机性能问题 在调试过程中,我发现虚拟机的性能较差,导致 Postman 访问虚拟机时非常卡,甚至严重影响了开发进程。尽管如此,这个问题在一段时间后自行缓 ...
打包cpp后端代码进入docker
C++ 后端打包 Docker 镜像总结 将 C++ 的代码打包成 Docker 镜像的过程 步骤 静态编译 先使用静态编译,确保代码的依赖能被打包到最终的可执行文件中。 编写 Dockerfile 创建一个 Dockerfile,用于构建镜像。 构建 Docker 镜像 使用命令构建镜像: 1docker build -t mywebproject:latest . 测试镜像 在本地构建后,使用 docker run 命令测试镜像是否能正常运行: 1docker run -it --name mywebproject_container -p 8080:8080 mywebproject /bin/bash 推送到镜像仓库 当本地测试通过后,可以将镜像推送到镜像仓库。 使用 Docker Compose 统一管理多个镜像 通过 Docker Compose 可以方便地管理多个服务,比如同时运行 MySQL 和 MinIO 镜像。在此过程中,我将数据库连接参数写死了,虽然不太灵活,但快速构建时是可接受的。 12345678910111213version: & ...
使用vcpkg执行包管理
尝试使用 vcpkg 运行项目 1. vcpkg 介绍 vcpkg 安装库时,不会与系统中已存在的库发生冲突。它默认将安装的库存放在 vcpkg_installed 目录中,并通过 CMake 或编译命令来链接这些库。 2. 安装 vcpkg 进入 home 目录: 1cd ~ 克隆 vcpkg 仓库: 1git clone https://github.com/microsoft/vcpkg.git 进入 vcpkg 目录: 1cd vcpkg 编译 vcpkg: 1./bootstrap-vcpkg.sh 3. 配置环境变量 将 vcpkg 添加到环境变量,使其可以全局使用: 12echo 'export PATH=$HOME/vcpkg:$PATH' >> ~/.bashrcsource ~/.bashrc 这样就可以在终端中直接使用 vcpkg 了
avatar
🐟认真摸鱼中
小面包🥝
Future is now 🍭🍭🍭
前往小窝
公告栏
欢迎来到小面包的博客!🎉
最新通知:
  • 网站正在持续更新中...
  • 如有问题请留言交流
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面