這里簡單記錄在使用Qt Creator時遇到的一個問題:
如下一行代碼,沒有任何問題,但編譯運行時會報錯。
label->setText("label:我是一個窗口");
當使用中文時,可能會習慣性的使用QObject::tr()函數
label->setText(QObject::tr("label:我是一個窗口"));
同樣代碼沒有問題,但是Qt Creator依舊會報錯,錯誤內容如下:
warning: C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件保存為 Unicode 格式以防止數據丟失
error: C2001: 常量中有換行符
error: C2146: 語法錯誤: 缺少“)”(在標識符“label”的前面)
error: C2146: 語法錯誤: 缺少“;”(在標識符“label”的前面)
解決方案:
只要在末尾加一個空格,讓最后一個中文漢字與雙引號隔開,這樣便不會再報錯。