簡體   English   中英

Qt 不支持 Unicode for Visual Studio 或字體錯誤

[英]Qt dont support Unicode for Visual studio or Font error

我是初學者,現在我正在學習 Qt 並使用 Visual Studio,擴展 Qt VS Tool 2.4.3,我使用文本是越南語,當我構建程序時它很好,但按鈕顯示特殊字符。

我已經閱讀了一些關於字體錯誤的主題,但它與此錯誤無關。

圖像問題錯誤

我的代碼:

#include <QtWidgets/QApplication>
#include <QPushButton>
#include <QLabel>

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        QPushButton nutBam; // instance 
        nutBam.setText("Nút khẩn cấp !"); //set Text button
        nutBam.show();
        return app.exec();
}

兩個問題:

  1. 在源文件中使用硬編碼的 unicode 字符通常不是一個好主意。 編輯器和編譯器有時可以做正確的事情。 編輯器可以另存為 UTF-8 或 Unicode。 編譯器可以假設讀取 BOM 標頭並切換編碼......通常。 但是團隊成員和源代碼存儲庫系統經常做錯事。 其他人帶來了不同的編輯器、源代碼控制系統等……而 unicode 的東西就搞砸了。 它還破壞了不同的工具。 我已經看到它發生太多次了。

  2. Qt 的 QString 看到您將 8 位 ascii 字符串傳遞到 QString 構造函數中。 然后他們的編碼解釋規則開始生效。所以它會用 unicode 字符串做得更好。

為了兩全其美,請將您的字符串存儲在帶有 unicode 轉義字符的源代碼中,但作為寬字符串傳遞給 QString 構造函數:

在線使用此工具將您的某些字符轉換為\ꯍ轉義序列。

取而代之的是:

nutBam.setText("Nút khẩn cấp !");

這個:

const wchar_t* text = L"N\u00fat kh\u1ea9n c\u1ea5p !";
QString qText(text);
nutBam.setText(qText);

盡管這不再是問題,但請確保您的編輯器將源文件保存為 ANSI 或 UTF-8 而不是 16 位 unicode。

我目前沒有在本地安裝 Qt,但上述內容可能會合並為:

nutBam.setText(L"N\u00fat kh\u1ea9n c\u1ea5p !");

暫無
暫無

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

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