将 QString 转换为 std::string

2024-01-09

我看过其他几篇关于将 QString 转换为 std::string 的帖子,它应该很简单。但不知怎的,我收到了一个错误。

我的代码使用cmake编译成VS项目(我使用的是VS Express),所以QT库没有问题,而且我编写的GUI除了这部分之外也可以工作。

我有一个QComboBox cb保存一些对象的名称,以及QLineEdit lineEdit这允许我指定我正在寻找的对象的名称。当我按下 go 按钮时,它应该运行一个经过测试并工作的函数,并使用来自QComboBoxlineEdit作为参数。

以下是单击“执行”按钮时的代码:

void gui::on_go_clicked(){
    std::string str(cb->currentText().toStdString());
    //std::cout << str << "\n";
    //QString qstr = lineEdit->text();
    //std::cout<<lineEdit->text().toStdString();
    updateDB(str, lineEdit->text().toStdString());
}

第一行,创建str, 工作正常。 IE。库函数没有问题或者toStdString()。但是当它执行我的函数时,程序中断了,这不是因为函数,而是因为它尝试转换的部分lineEdit->text().toStdString().

仅当我在其中写入“测试”一词时才会出现这种情况lineEdit盒子。我已经看到其他关于 unicode 的答案,我简短地尝试过,但我可以假设用户不会在lineEdit框,禁止 '_' 和 '.',它们不应该是 unicode。


第一行创建 str 工作正常。 IE。没问题 库函数或 toStdString()。但是当它执行我的函数时, 程序崩溃了,这不是因为函数,而是因为 它尝试将 lineEdit->text().toStdString() 转换的部分。

简化您的测试并验证 QString.toStdString() 是否符合您的预期:

所以:

QString text = "Precise text that user would input";
std::cout << text.toStdString() << std::endl; //or...
qDebug() << text.toStdString().c_str();

是否产生了预期的结果?

如果是这样的话,说明你的函数有问题。 updateDB 看起来如何(函数签名?)?它的输入是什么?

来自 Qt 帮助文件:

使用 toUtf8() 函数将 Unicode 数据转换为 8 位字符。

因此,如果您没有更改小部件(lineEdit)或其父级的区域设置,则一切应该正常工作(或者您应该看到一些信息丢失的内容)。我已经使用这个功能很多次了,没有任何问题......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 QString 转换为 std::string 的相关文章

  • 我可以使用反射更改 C# 中的私有只读字段吗?

    我想知道 由于很多事情都可以使用反射完成 我可以在构造函数完成执行后更改私有只读字段吗 注 只是好奇 public class Foo private readonly int bar public Foo int num bar num
  • Web UI 中的 .Result 出现死锁

    我正在阅读以下主题http blog stephencleary com 2012 07 dont block on async code html http blog stephencleary com 2012 07 dont bloc
  • 浮点提升:stroustrup vs 编译器 - 谁是对的?

    在 Stroustrup 的新书 C 编程语言 第四版 第 10 5 1 节中 他说 在执行算术运算之前 整数提升用于从较短的整数类型创建整数 类似地 浮点提升是用于从浮点数创建双精度数 我用以下代码确认了第一个声明 include
  • Linq Where 本地计数器关闭在 VS watch 中的结果不同

    我尝试删除前 3 个元素array与 LinQWhere扩展功能 这是一个例子 var array new 1 2 3 4 5 6 7 8 9 var count 3 var deletedTest1 0 var test1 array W
  • 身份未映射异常

    System Security Principal IdentityNotMappedException 无法转换部分或全部身份引用 该错误仅在应用程序注册后出现一次 当 SecurityIdentifier 无法映射时 例如 返回 Ide
  • 使用 VSTO 更改 Outlook 设置

    我刚刚花了大约 4 个小时试图弄清楚如何以编程方式检索 设置 Microsoft Outlook 2010 的 Outlook 设置 我所说的 设置 是指文件 选项 邮件下的设置 我想做的是检索用户设置的设置列表 自动化我们每天需要在某些消
  • Qt中正确的线程方式

    我的图像加载非常耗时 图像很大 并且在加载时也完成了一些操作 我不想阻止应用程序 GUI 我的想法是在另一个线程中加载图像 发出图像已加载的信号 然后用该图像重绘视图 我的做法 void Window loadImage ImageLoad
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • 如何避免选择项目时 winforms 树视图图标发生变化

    我正在一个小型 C Winforms 应用程序中尝试树视图 我已经以编程方式将 ImageList 分配给树视图 并且所有节点都很好地显示了它们的图标 but当我单击一个节点时 它的图标会发生变化 变为 ImageList 中的第一个图像
  • 防止复制构造和返回值引用的分配

    如果我有一个函数返回对类实例的引用 但我无法控制其源 比如说list
  • 通过 mpi 发送 c++ std::vector

    我知道存储一个std vector
  • 在生产者-消费者情况下使用条件变量

    我正在尝试了解条件变量以及如何在生产者 消费者情况下使用它 我有一个队列 其中一个线程将数字推入队列 而另一个线程从队列中弹出数字 当生产线程放置一些数据时 我想使用条件变量向消费线程发出信号 问题是有时 或大多数时候 它只将最多两个项目推
  • C#:如何使用 SHOpenFolderAndSelectItems [重复]

    这个问题在这里已经有答案了 有人可以举例说明如何使用 shell 函数吗SH打开文件夹并选择项目 http msdn microsoft com en us library bb762232 VS 85 aspx来自 C 我不太明白如何使用
  • 编写专门用于类及其子类的函数模板

    我正在尝试编写一个函数模板 一个版本应该用于不满足另一版本标准的所有类型 当参数是给定类的基类或该类本身时 应使用另一个版本 我尝试过超载Base 但是当类派生自Base 他们使用通用的 而不是特定的 我也尝试过这种 SFINAE 方法 s
  • 如何从枚举中选择随机值?

    给定 C 中的任意枚举 如何选择随机值 我没有找到这个非常基本的问题 我会在一分钟内发布我的答案作为任何人的参考 但请随意发布你自己的答案 Array values Enum GetValues typeof Bar Random rand
  • 为什么我不能在扩展 List 的类中调用 OrderBy?

    我有一堂课 Deck 其中包含一个名为的方法Shuffle 我正在致力于重构Deck延长List
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • C++0x 中的新 unicode 字符

    我正在构建一个 API 它允许我获取各种编码的字符串 包括 utf8 utf16 utf32 和 wchar t 根据操作系统 可能是 utf32 或 utf16 新的 C 标准引入了新类型char16 t and char32 t没有这么
  • ASP.NET Core:会话 ID 始终变化

    今天启动了一个全新的 ASP NET Core 网站 按照说明添加会话 我们在索引页上打印出会话 ID 它始终是唯一的 我认为这可能是 cookie 合规性 所以我在 Chrome 的高级设置和调试器中删除了所有 cookie 但横幅不会再

随机推荐

  • Django 从原始查询创建管理列表

    我愿意在管理员中创建查询集列表模板 查询集是通过cursor execute 获得的 因此可能需要一个假模型 基本上我只是想利用 Django admin list 提供的分页和过滤功能 这是我的代码的相关部分 模型 py class Qu
  • JSR250:CommonAnnotations for Java,2.3:@Resource 方法必须是遵循标准 JavaBeans 约定的 setter

    我在这条线上遇到问题 Resource public void setMessageDrivenContext MessageDrivenContext context this context context 消息是 JSR250 Jav
  • 将从mongo返回的日期转换为这种格式2015-10-25

    我有一个从 mongo db 返回的 json 文件 如下所示 id date 2014 10 19T04 00 00 000Z value 29 id date 2014 10 20T04 00 00 000Z value 20 id d
  • 使用OpenMP计算PI值

    我正在尝试通过并行化蒙特卡罗代码来学习如何使用 OpenMP 该代码通过给定的迭代次数计算 PI 的值 代码的核心内容是这样的 int chunk CHUNKSIZE count 0 pragma omp parallel shared c
  • Simplecov gem 在 Rails 中缺少未经测试的文件

    Using simple covRails 应用程序中的 gem 我们可以将未测试的文件包含在报告中吗 如果是 怎么办 如果不是 该文件应该计入覆盖率 对吧 尝试编辑您的config environments test rb并设置这一行 c
  • PhpStorm 中有选择当前行的键盘快捷键吗?

    在 PhpStorm 中有扩展选择的快捷方式ctrl w 有没有选择当前所有行的快捷方式 我正在寻找类似的东西ctrl l在崇高 这样的操作是可用的 但分配的快捷键 如果有 取决于实际使用的键盘映射 任何状况之下 Settings Pref
  • 确认第一条消息后发送第二条消息。 RabbitMQ 保证顺序吗?

    假设多个生产者发布到同一个交易所 E 扇出 每个生产商都有自己的渠道 队列 Q 绑定到交换机 E 生产者 P1 向 E 发布消息 M1 并从 E 接收确认 A1 只有在确认 A1 后 第二个生产者 P2 才发布第二条消息 M2 Rabbit
  • 矩阵和向量的逐元素点积[重复]

    这个问题在这里已经有答案了 确实有类似的问题here https stackoverflow com questions 26168363 elegant expression for row wise dot product of two
  • 我可以在套件中运行单个测试吗?

    我已经为我的结构设置了一个测试套件 https github com stretchr testify suite package https github com stretchr testify suite package 在我能够通过
  • 在 iOS 中同时管理文本转语音和语音识别

    我想要我的iOS我正在开发一个应用程序 使用文本转语音功能向用户朗读从服务器接收到的一些信息 并且我还想允许用户通过语音命令停止此类语音 我尝试过 iOS 的语音识别框架 例如OpenEars我发现问题在于它正在监听和检测应用程序本身 说
  • 在 mouseenter 上旋转 div 元素并在 mouseleave 上停止旋转

    我搜索了很多 但我无法理解其实现 我是初学者 所以请帮助我 div style height 100 width 100 background color blue div javascript var x 0 var y function
  • 为什么我的开发团队应该拥有构建服务器?

    我们知道这是好事 但我发现自己向我的雇主证明了这一点 请说明为什么开发团队需要构建服务器 使用构建服务器有多种原因 没有特定的顺序 但我的脑海中浮现出以下内容 您可以简化开发人员的工作流程并减少出错的机会 您的构建服务器可以处理多个步骤 例
  • 仅在使用 jquery 最后一个键后进行 Keyup

    我正在编写一个简单的脚本来提取输入 keyup 事件的数据库信息 我遇到的问题是每次用户按下一个键时总是重复 keyup 事件 如何才能使其仅在按下最后一个键后才起作用 我想我应该在每次按键后使用像 setTimeOut 这样的函数 但我不
  • Java 中的虚拟(派生)属性是什么?

    我应该创建一个派生属性 该属性将具有处理 Mark E Brown 等值的访问器和修改器 我不明白这个词 这对我来说是新的 帮助 public String getFullName return fullName getFirstName
  • 如何增加雷达图 MPAndoid Chart 的大小?

    I want to increase size of MPAndroid Radar Chart I observed that the size increases gradually when i increase size of th
  • 使用mockito“无法解析方法”

    I use org springframework security core Authentication其中有一个方法 Collection
  • 字符串格式正值和负值以及条件颜色格式 XAML

    我正在寻找一种简单的方法来使用以下标准格式化结果 如果为正 则添加加号并将其显示为绿色 如果为负则添加减号并将其显示为红色 我已经完成了一半 我只是不知道获得颜色格式的最简单方法是什么 有没有一种不使用值转换器的方法
  • cpp文件中的C++变量可以定义为特殊符号β吗

    我们可以使用特殊字符在 C C 中定义变量吗 例如 double 如果是 如何实现这一目标 根据CPP标准工作草案 N4713 5 10 标识符 lex name 标识符是任意长的字母和数字序列 标识符中的每个通用字符名应指定一个字符 该字
  • iOS:如何获取安装引用源

    我想了解用户如何使用什么来源 归因 安装应用程序 对于 Android 可以获取引用者的 URL 但我还没有找到针对 iOS 的明显方法 有外部服务 例如 AppsFlyer http support appsflyer com entri
  • 将 QString 转换为 std::string

    我看过其他几篇关于将 QString 转换为 std string 的帖子 它应该很简单 但不知怎的 我收到了一个错误 我的代码使用cmake编译成VS项目 我使用的是VS Express 所以QT库没有问题 而且我编写的GUI除了这部分之