編譯完成qt以后,發現qt的字體太小了
原因是qt的dpi計算錯誤,這樣的情況會導致qt在不同的平臺上大小不一
解決的方法就是設置好qt的dpi,
qt是根據顯示器的物理長度或者寬度于分辨率的關系來計算dpi的,
所以我們設置exportQWS_DISPLAY="LinuxFB:mmWidth95:0"
export QWS_SIZE="480x272"
這樣qt在所有的平臺上顯示的字體都一樣大了 就好了,
還有其他的選項,可以參考http://doc.qt.nokia.com/4.6/qt-embedded-displaymanagement.html
這個是字體的問題。
1,下載文泉驛正黑字體qpf字體庫
在http://kenter1643.download.csdn.net/可以找到下載
2,把下載好的字體庫解壓后的qpf文件放入lib/fonts中(qtX86和arm版本以及移植的文件系統中都放入此子體)
編譯運行的時候:在qtcreator中在Run Settings——〉Edit run configuration:右側單擊Show Details按鈕,在打開的下拉列表中Arguments:文本框中添加參數“-qws -font wenquanyi”。
或者在終端中運行:例如:./hello -qws -font wenquanyi
這樣就可以顯示中文了
如果不想輸入后面的參數可以把lib/fonts中的其他字體全部刪除,只保留泉驛正黑字體的qpf字體庫。這樣只需要運行./hello -qws 即可 不過這樣以來就用不了其他字體了。
提示:在終端中運行程序時其后加上& 就不會獨占終端了,可以在終端運行多個程序
如:./hello &
這個好用
引用 4 樓 killua_hzl 的回復:
qApp->setDefaultCodec( QTextCodec::codecForName("utf8") );
或者用QTranslator看看吧,當然翻譯文件要做
我當時移植一直是用英文的,沒什么注意
qt4.5以后就沒這個函數了,可以用下面的方法:
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
....
app.exec();
然后在需要輸出中文的地方用tr()把字符包含起來,如:lineEdit->setText(tr("中文"));
在qt默認的字庫中,只有unifont_160_50.qpf支持中文,你把這個文件拷到運行系統的字庫目錄下,
啟動程序加一下參數:
./yourApp -font unifont