九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Qt4.4.3 中文顯示

Qt4.4.3 中文顯示

Qt4.4.3 2010-05-05 16:14:35 閱讀101 評(píng)論0   字號(hào): 訂閱

 


 

QTextCodec::setCodecForTr(QTextCodec::codecForLocale( ));  顯示中文前加這句 中文加tr

 
 
對(duì)于界面的中文顯示問(wèn)題,在網(wǎng)上找了一些資料,并且根據(jù)這些資料一直試驗(yàn)了很久,前后出現(xiàn)了很多問(wèn)題。原來(lái)已經(jīng)小結(jié)過(guò)一回,但后來(lái)不知道怎么又出現(xiàn)了新問(wèn)題,現(xiàn)就整個(gè)過(guò)程再小結(jié)一回。希望以后不會(huì)再出現(xiàn)問(wèn)題。

開始的時(shí)候,在網(wǎng)上找到了如下代碼,加入到main.cpp文件中之后,所有的子對(duì)話框窗口都能顯示中文,但是主窗口不能顯示中文:

#include <QTextCodec>

   

    QApplication app(argc, argv);

QTextCodec::setCodecForTr(QTextCodec::codecForLocale( ));

    QTextCodec::setCodecForCStrings (QTextCodec::codecForLocale( ));

接著在網(wǎng)上繼續(xù)查找資料,找到了如下代碼,并替代了上述的代碼,編譯之后所有的窗口都能顯示中文了;

#include <QTextCodec>

QApplication app(argc, argv);

QTextCodec::setCodecForTr(QTextCodec::codecForName(“GB2312” ));

    QTextCodec::setCodecForLocale (QTextCodec::codecForName( “GB2312”));

故對(duì)界面開發(fā)之“中文顯示”進(jìn)行了小結(jié),但是,過(guò)了一天,進(jìn)行新的編譯之后且編譯沒(méi)有通過(guò),出現(xiàn)了如下錯(cuò)誤,之后所有的子對(duì)話框窗口就都顯示為亂碼了,但主對(duì)話框還是能夠顯示為中文:

“make: 警告:檢測(cè)到時(shí)鐘錯(cuò)誤,您的創(chuàng)建可能是不完整的。”

于是在網(wǎng)上繼續(xù)進(jìn)行資料查詢,并且進(jìn)行了多次的代碼組合,但出現(xiàn)了不同的問(wèn)題,如:

使用如下代碼時(shí),主界面標(biāo)題及菜單欄可顯示為中文,但子對(duì)話框的標(biāo)題、標(biāo)簽及按鈕上的中文顯示為亂碼:

#include <QTextCodec>

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));

#include <QTextCodec>

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForTr(QTextCodec::codecForLocale( ));

QTextCodec::setCodecForCStrings (QTextCodec::codecForLocale( ));

但使用如下代碼時(shí),子對(duì)話框的標(biāo)題、標(biāo)簽及按鈕上可顯示中文,而主界面窗口的標(biāo)題及菜單欄中文顯示為亂碼:

    #include <QTextCodec>

   

    QApplication app(argc, argv);

QTextCodec::setCodecForTr(QTextCodec::codecForLocale( ));

QTextCodec::setCodecForCStrings (QTextCodec::codecForLocale( ));

后來(lái)發(fā)現(xiàn),主窗口顯示中文的時(shí)候,也就是 mainwindow.cpp文件內(nèi)的中文都可以顯示,而其它的*.cpp文件都是亂碼;于是,嘗試了一下,將Control對(duì)話框窗口的Control_Standarddialogs.cpp文件內(nèi)的代碼內(nèi)容拷貝到mainwindow.cpp文件中,然后撤掉Control_Standarddialogs.cpp重新編譯,則Control對(duì)話框可以顯示中文,而其他的對(duì)話框還是亂碼。

經(jīng)過(guò)不斷的嘗試和修改,后來(lái)在網(wǎng)上有人回帖說(shuō)只使用如下一句語(yǔ)句就可以,但是必須在所有中文之前,然后我就將其他語(yǔ)句屏蔽到;但是還是不行;

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

后來(lái)發(fā)現(xiàn)只要先點(diǎn)擊壓力對(duì)話框,然后再點(diǎn)擊其他對(duì)話框的話,就都能夠顯示中文。查看p_StandardDialogs.cpp文件代碼,發(fā)現(xiàn)原來(lái)嘗試的過(guò)程中所遺留下來(lái)的兩句代碼發(fā)揮了作用,將其它對(duì)話框的*.cpp文件中也加入這兩句代碼,編譯之后都可以顯示了。但是在點(diǎn)擊“關(guān)于”菜單的時(shí)候又出現(xiàn)了一點(diǎn)問(wèn)題,就是:當(dāng)先點(diǎn)擊“關(guān)于”菜單項(xiàng)時(shí),跳出的消息對(duì)話框可以顯示為中文,但在你點(diǎn)擊完其它對(duì)話框之后再點(diǎn)擊“關(guān)于”菜單項(xiàng),跳出的消息對(duì)話框就顯示為亂碼,故在“關(guān)于”菜單項(xiàng)的槽函數(shù)中加入了如下代碼,就沒(méi)有這種現(xiàn)象了。

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

總結(jié)上述現(xiàn)象,得出下列結(jié)論:

代碼“QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));”在主窗口中起作用,而代碼“QTextCodec::setCodecForTr(QTextCodec::codecForLocale( ));

QTextCodec::setCodecForTrCStrings(QTextCodec::codecForLocale( ));”

對(duì)子對(duì)話框窗口起作用,并且每次點(diǎn)擊窗口的時(shí)候都要響應(yīng)一下上述函數(shù),故上述三句代碼要在每個(gè)窗口所有中文內(nèi)容之前發(fā)揮作用。

則:在main.cpp文件中加入如下代碼:

#include <QTextCodec>

   

QApplication app(argc, argv);

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

   

在消息對(duì)話框文件的槽函數(shù)中加入:

Void MainWindow::slotAbout( )

{

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

QMessageBox::about(this, tr(“幫助文檔”), tr(“消息對(duì)話框顯示內(nèi)容”));

return;

}

在各子對(duì)話框的*.cpp文件中加入如下代碼:

p_StandardDialogs::p_StandardDialogs( QWidget *parent, Qt::WindowFlags f)

                     :QDialog(parent, f)

{

QTextCodec::setCodecForTr(QTextCodec::codecForLocale( ));

QTextCodec::setCodecForTrCStrings(QTextCodec::codecForLocale( ));

setWindowTitle(tr(“中文字樣”));

……

}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
QT中中文顯示問(wèn)題
QT亂碼問(wèn)題解決
Qt中文顯示
QT下中文字符編碼的轉(zhuǎn)換
Qt版本差異造成的問(wèn)題與解決
QT文本編碼轉(zhuǎn)換方法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服