【问题标题】:Passing char* to QString将 char* 传递给 QString
【发布时间】:2019-02-21 05:39:17
【问题描述】:

我正在开发一个模块,其中 GUI 和后端通过消息传递进行交互。 我将 char* 初始化为 nullptr。 GUI 采用一个标记化的 QStringList。我无法在标记化列表中进行更改。我在列表中收到一个“(null)”。现在我觉得通过比较“(null)”不是要走的路。 char* 是否有任何初始化,QString 会将其视为空字符串?

【问题讨论】:

  • 为什么不传递一个空字符串,即""?或者只是一个默认构造的 QString 对象(这将是一个空字符串)。

标签: c++ qt c++11


【解决方案1】:

当指针为NULL 时,在构造QString 时使用空字符串。

QString obj = (ptr == nullptr? QString("") : QString(ptr));

然后使用obj

【讨论】:

  • 它需要一个被标记化的 QStringList。我无法在标记化列表中进行更改。我在列表中收到一个“(null)”。现在我觉得通过比较“(null)”不是要走的路。 char* 是否有任何初始化,QString 会将其视为空字符串?
  • @ArchitJ,这是一个非常不同的问题。我认为你应该用关于你的代码做什么以及它在哪里遇到 NULL 指针问题的新信息来增强你的帖子。
【解决方案2】:

不确定你想要什么,但如果我没记错的话:

char *c = nullptr;
QString str(c);

str.isEmpty(); // return true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多