[英]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.