将bool转换为QString

24

我想把bool类型转换为QString类型。

最有效的方法是什么?这是我的代码,但肯定有其他更好的方法。

bool test = true;
test ? "1" : "0";

感谢。


我所知道的没有更好的方式。 - Chris Browet
2
这不应该是 QString(test ? "1" : "0") 吗? - Fred Foo
抱歉,larsmans,我的复制/粘贴功能出了点问题,对不起。 - Jjreina
4个回答

49

您可以使用静态的QString::number方法 - 布尔值将被隐式转换为整数以匹配静态工厂方法的整数形式,该方法返回一个包含01QString对象。

bool test = true;
QString s = QString::number(test);

22

使用 QVariant!

从 bool 到 QString:

   bool bInput = false;
   QString s = QVariant(bInput).toString();

从QString到bool:

  QString s = "true";
  bool bInUse = QVariant(s).toBool();    

11

qDebug()会把布尔变量显示为"true"或"false"。如果你想得到这样一个字符串,可以稍微修改一下你的代码:

qDebug()将bool变量显示为字符串"true"或"false"。如果您想要获得此类字符串,可以对代码进行小幅修改:

bool test = true;
QString boolText = test ? "true" : "false";

1
bool test = true;
QString s = QVariant(test).toString();

这将返回“true”或“false”,并在Qt翻译的qtbase_xx.qm中进行国际化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接