簡體   English   中英

如何獲取常見Qt5類型(例如QOpenGLContext)的字符串表示形式?

[英]How to get string representation of common Qt5 types like QOpenGLContext?

注意:這是一個天真的問題。

在調試和登錄Qt5 C ++應用程序期間,打印內部變量的值非常有用,在Qt ,常見的方法是將qDebug()與這樣的朋友一起使用:

qDebug()<<"The value was: "<< myVar;
// Usually works well even for built-in Qt types

這似乎適用於許多內置的Qt5特定類型,甚至也適用於指針,但是在不輸出日志的情況下,實際上我們正在構建一個字符串,這種情況變得非常麻煩。

QString myString= "The value was: "+myVar;
// Usually doesn't work well for built-in Qt types

因此,問題是,與將內置流類型傳輸到qDebug()所獲得的等效的內置Qt類型字符串表示法一樣,有什么通用的好方法?

還是“ Qt類型與Java toString()等效”是什么?

QDebug類文檔中,我可以發現它具有構造函數

QDebug::QDebug(QString *string)

構造寫入給定字符串的調試流

所以這應該工作:

QString myString;
QDebug stream(&myString);
stream <<"The value was: "<< myVar;

Qt調試輸出的格式內容不是API的一部分。 它們可以隨時更改。 每次更新Qt時,您都必須審核輸出,否則,除調試外,您不得依賴它。 這就是API故意在調試輸出和字符串之間進行轉換的麻煩。

而是,為所需的類型實現自己的QTextStream運算符,然后使用流構建字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM