C++/Qt 小知识记录6

工作中遇到的一些小问题,总结的小知识记录:C++/Qt

小知识6

  • dumpbin工具查看库导出符号
  • OSGEarth使用编出的protobuf库,报错问题解决
  • VS2022使用cpl模板后,提示会乱码的修改设置
  • QProcess调用cmd.exe执行脚本
  • QPainterPath对线段描边处理
  • QTableWidget实现行颜色交替的样式

dumpbin工具查看库导出符号

查看库中的符号,使用 /symbols 选项;如果想要查看导出的符号,可以使用 /exports 选项。

dumpbin /exports libprotobuf.lib
输出到文本
dumpbin /exports libprotobuf.lib > exports.txt

OSGEarth使用编出的protobuf库,报错问题解决

最近使用vs2022编译OSG3.6.5 + OSGEarth3.3,在编译时报错如下链接错误,将protobuf的很多个版本都尝试了也没有,以及大部分的解决方案说将编译改为动态库也不行:

	1>vector_tile.pb.obj : error LNK2019: 无法解析的外部符号 "class google::protobuf::internal::ExplicitlyConstructed<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3V?$ExplicitlyConstructed@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@123@A),函数 "public: virtual class mapnik::vector::tile_value * __cdecl mapnik::vector::tile_value::New(void)const " (?New@tile_value@vector@mapnik@@UEBAPEAV123@XZ) 中引用了该符号1>glyphs.pb.obj : error LNK2001: 无法解析的外部符号 "class google::protobuf::internal::ExplicitlyConstructed<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3V?$ExplicitlyConstructed@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@123@A)1>vector_tile.pb.obj : error LNK2019: 无法解析的外部符号 "struct std::atomic<bool> google::protobuf::internal::init_protobuf_defaults_state" (?init_protobuf_defaults_state@internal@protobuf@google@@3U?$atomic@_N@std@@A),函数 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & __cdecl google::protobuf::internal::GetEmptyString(void)" (?GetEmptyString@internal@protobuf@google@@YAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) 中引用了该符号1>glyphs.pb.obj : error LNK2001: 无法解析的外部符号 "struct std::atomic<bool> google::protobuf::internal::init_protobuf_defaults_state" (?init_protobuf_defaults_state@internal@protobuf@google@@3U?$atomic@_N@std@@A)1>D:\Developer\OsgEarth3.3\build_vs2022\lib\Release\osgEarth.dll : fatal error LNK1120: 2 个无法解析的外部命令1>已完成生成项目“osgEarth.vcxproj”的操作 - 失败。========== 生成: 0 成功,1 失败,1 最新,0 已跳过 ==================== 生成 于 20:44 完成,耗时 09.620 秒 ==========

解决方法:
在osgEarth的CMakeLists.txt中入PROTOBUF_USE_DLLS宏:
ADD_DEFINITIONS(-DPROTOBUF_USE_DLLS)
即,让OsgEarth使用protobuf的动态库(所以protobuf至少也要编成动态库的形式)
参考链接:
https://blog.csdn.net/alvinlyb/article/details/110952210
c++编译protobuf时提示LNK2001 无法解析的外部符号_vc++编译protobuf无法解析的外部符号-CSDN博客

VS2022使用cpl模板后,提示会乱码的修改设置

VS2022使用cpl模板后,提示注释会乱码的修改
在这里插入图片描述
修改方法:选项->环境->区域设置内切换语言:
在这里插入图片描述

QProcess调用cmd.exe执行脚本

主要是当时忘了Windows下的cmd命令也是一个工具,就想着直接调用自己的执行命令去了,特此记录一下。
在这里插入图片描述

QPainterPath对线段描边处理

即:对一条粗线段进行描边,但在线段的交点容易产生缠绕的线,如图所示:
在这里插入图片描述
解决过程中发现:QPainterPathStroker的setWidth(n)和painter->strokePath(outlinePath, pen)传入的pen,设置pen.setWidth值一致,可以避免,入图所示:
但边线太粗,无法满足要求。
在这里插入图片描述
使用QPainterPath提供的simplified()函数处理转弯处的计算冗余问题,同时支持painter->strokePath(outlinePath, pen)传入的pen,线宽可以根据要求改变。
部分实现如下:

painter->setRenderHint(QPainter::Antialiasing, true);// 生成可填充的轮廓
QPainterPathStroker stroker;
stroker.setCapStyle(Qt::RoundCap);
stroker.setJoinStyle(Qt::RoundJoin);
stroker.setDashPattern(Qt::SolidLine);
stroker.setWidth(m_attr.m_nLineWidth);// 可填充区域,表示原始路径 path 的轮廓
QPainterPath path;
path.moveTo(m_attr.m_polygon[0]);
for (int i = 1; i < m_attr.m_polygon.size(); i++)
{path.lineTo(m_attr.m_polygon[i]);
}
QPainterPath outlinePath = stroker.createStroke(path);
outlinePath = outlinePath.simplified();// 轮廓外边框绘制
QPen pen(m_attr.m_lineColor);
pen.setWidth(2);
painter->strokePath(outlinePath, pen);// 填充路径 outlinePath
painter->setPen(Qt::NoPen);
QColor fillColor = m_attr.m_fillColor;
fillColor.setAlpha(120);
painter->fillPath(outlinePath, QBrush(fillColor));

QTableWidget实现行颜色交替的样式

在这里插入图片描述
以下为与之相关的qss和代码的实现:

/*设置QAbstractItemView隔行换色*/
QAbstractItemView[alternatingRowColors = "true"]{qproperty-alternatingRowColors:true;
}QTableWidget {background-color: #66333333; /*背景色*/alternate-background-color: #07314f; /*交替色*/border: none; font-size: 12px;color: #ffffff; gridline-color: #77c4ff; /* 设置网格线的颜色 */
}
ui->tableWidget->setAlternatingRowColors(true); //设置支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/325959.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验0.0 Visual Studio 2022安装指南

Visual Studio 2022 是一个功能强大的开发工具&#xff0c;对于计算机专业的学生来说&#xff0c;它不仅可以帮助你完成学业项目&#xff0c;还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio&#xff0c;你将能够更高效地开发软件&#xff0c;并在编程领域…

picoCTF-Web Exploitation-More SQLi

Description Can you find the flag on this website. Additional details will be available after launching your challenge instance. Hints SQLiLite 先随便输入个账号密码登录一下&#xff0c;得到查询SQL&#xff0c;接下来应该对SQL进行某些攻击来绕过密码登录成功 -- …

Unity Editor 找物体助手

找啊找朋友~ &#x1f371;功能介绍&#x1f959;使用方法 &#x1f371;功能介绍 &#x1f4a1;输入相关字符串&#xff0c;它会帮你找到名称中带有该字符串的所有物体&#xff0c;还会找包含该字符串的Text、TextMeshProUGUI。 &#x1f959;使用方法 &#x1f4a1;导入插…

商场学习之微服务

前言 寒假前在新电脑上配置了java环境&#xff0c;maven仓库&#xff0c;node,js&#xff0c;navicat&#xff0c;MySQL&#xff0c;linux&#xff0c;vmware等环境&#xff0c;创建了6个mysql数据库&#xff0c;77张表。 如此多的表&#xff0c;字段&#xff0c;去手写基础…

加州大学欧文分校英语高级语法专项课程01:Verb Tenses and Passives 学习笔记

Verb Tenses and Passives Course Certificate Course Intro 本文是学习 Verb Tenses and Passives 这门课的学习笔记。 文章目录 Verb Tenses and PassivesWeek 01: Simple, Progressive, and Perfect Verb Tenses ReviewLearning Objectives Present Perfect Tense Review L…

从我的实体书单中,精选这六本书推荐

工作之余偶尔看看书&#xff0c;偏爱翻阅实体书。随着时间的推移&#xff0c;书逐渐变得多了起来。为了给新书腾出空间&#xff0c;同时也为了减轻收藏实体书的经济负担&#xff0c;我决定进行一次书籍的整理和出售。在这一过程中&#xff0c;我特意挑选了六本我个人喜爱的书籍…

《构建智能财务预算与管控技术架构:实现企业财务管理的高效运作》

在当今数字化时代&#xff0c;企业财务预算与管控技术的应用已成为企业管理的关键一环。通过构建智能化的财务预算与管控技术架构&#xff0c;企业能够实现财务管理的精细化、智能化和高效化&#xff0c;从而更好地应对市场竞争和风险挑战&#xff0c;提升企业的竞争力和盈利能…

i春秋-GetFlag

题目 考点 sql注入&#xff0c;md5加密&#xff0c;代码审计&#xff0c;利用eval函数 解题 参考wp https://www.cnblogs.com/qiaowukong/p/13630130.html找md5值 看见验证码中的提示&#xff0c;就是去找一个md5值前六位是指定值的数&#xff08;严格来说不一定是数&…

【C语言项目】贪吃蛇(下)

个人主页~ 源码在Gitee仓库~ 上一篇贪吃蛇&#xff08;上&#xff09;~ 贪吃蛇 四、核心的实现游戏测试1、GameStart&#xff08;1&#xff09;控制台窗口大小和名字设置&#xff08;2&#xff09;光标隐藏&#xff08;3&#xff09;打印欢迎界面&#xff08;4&#xff09;创建…

鸿蒙布局Column/Row/Stack

鸿蒙布局Column/Row/Stack 简介我们以Column为例进行讲解1. Column({space: 10}) 这里的space: 10&#xff0c;表示Column里面每个元素之间的间距为102. width(100%)&#xff0c;height(100%) 表示宽高占比3. backgroundColor(0xffeeeeee) 设置背景颜色4. padding({top: 50}) 设…

Vue报错:TypeError: Cannot read property ‘upgrade‘ of undefined

文章目录 Vue报错&#xff1a;TypeError: Cannot read property upgrade of undefined前言解决办法 Vue报错&#xff1a;TypeError: Cannot read property ‘upgrade’ of undefined 前言 最近打开一个很就之前的开发项目&#xff0c;因为扫描包&#xff0c;所以删除了部分代…

如何从未入库的gerrit中撤销一个文件

用一个例子说明 比如有一个提交里面的default.xml的修改没有必要&#xff0c;需要从未入库的gerrit中移除 步骤如下&#xff1a; 1.做reset操作 git reset HEAD^ packages/SettingsProvider/res/values/defaults.xml 2.做checkout操作 git checkout packages/SettingsProv…

【C++】STL-list的使用

目录 1、list的使用 1.1 list的构造 1.2 list的遍历 1.3 list capacity 1.4 list element access 1.5 容量相关 list是一个带头双向循环链表 1、list的使用 1.1 list的构造 1.2 list的遍历 list只有两种遍历方式&#xff0c;因为没有operator[] 因为list的双向链表&am…

13.跳跃游戏

文章目录 题目简介题目解答解法一&#xff1a;贪心算法&#xff0b;动态规划代码&#xff1a;复杂度分析&#xff1a; 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 跳跃游戏面试题 相关的讲解&#xff01;&#x1f600; 题目简介 题目解答 思路&#xff1a;这…

vscode打开esp-idf工程,找不到头文件,有波浪线

就像这样 多半是因为原始的工程不是用vscode的插件新建的&#xff0c;因此没有相关的路径。需要在工程文件夹下的.vscode文件夹中的c_cpp_properties.json文件中增加路径&#xff0c;可以参考插件自动新建的工程里面的写法 {"configurations": [{"name":…

LabVIEW二维码生成与识别

LabVIEW二维码生成与识别 随着数字化时代的快速发展&#xff0c;QR二维码作为一种高效的信息传递和识别手段&#xff0c;已广泛应用于各行各业。利用LabVIEW软件及其NI视觉开发模块(VDM)来实现一个高效的QR二维码生成与识别系统。该系统不仅能够快速生成带有自定义信息的二维码…

Linux网络编程】传输层中的TCP和UDP(UDP篇)

【Linux网络编程】传输层中的TCP和UDP&#xff08;UDP篇&#xff09; 目录 【Linux网络编程】传输层中的TCP和UDP&#xff08;UDP篇&#xff09;传输层再谈端口端口号范围划分认识知名端口号netstatiostatpidofxargs UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲数据UDP使…

linux性能监控之free

free&#xff1a;linux系统自带命令&#xff0c;显示内存状态&#xff0c;命令查询来源于/proc/meminfo 文件 [rootk8s-master ~]# free --helpUsage:free [options]Options:-b, --bytes show output in bytes-k, --kilo show output in kilobytes-m, --mega…

小猫咪邮件在线发送系统源码v1.1,支持添加附件

小猫咪邮件在线发送系统源码v1.1&#xff0c;支持添加附件 一款免登录发送邮件&#xff0c;支持发送附件&#xff0c;后台可添加邮箱,前台可选择发送邮箱 网站数据采取本地保存&#xff0c;所以使用前请给网站修改权限&#xff0c;否则很多功能将无法使用 安装教程&#xff…

《软件方法(下)》8.3.3 泛化的一些重点讨论(202405更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 8.3 建模步骤C-2 识别类的关系 8.3.3 泛化的一些重点讨论 8.3.3.1 子集的不相交和完整 泛化是集合关系&#xff0c;在建模泛化关系时&#xff0c;我们对泛化关系中的子类&#xff0…