
QT默认用的和你编码不一样,用utf8要改qt的环境设置,或者试试下面的。
QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));//设置中文字体编码
修改Qt for Symbian程序名字为中文与Symbian程序开发相同,每个Qt for Symbian程序中同样存在[project]loc文件,在文档最开始添加CHARACTER_SET UTF8标识,修改里面的程序名字符串,并保存成UTF-8格式文件,然后重新编译工程就可以了(修改程序安装时提示的程序名,需要更新PKG文件并存为 UTF-8格式)
Code:
CHARACTER_SET UTF8
#ifdef LANGUAGE_SC
#define STRING_r_short_caption "模拟时钟"
#define STRING_r_caption "模拟时钟"
#else
#define STRING_r_short_caption "analogclock"
#define STRING_r_caption "analogclock"
#endif
另外。 还有要把“[project]loc”,设为只读文件。这样不会在qmake时被覆盖掉。
在用户目录里打开xprofile文件,没有的话执行:vi~/xprofile2输入:exportLC_ALL=zh_CNUTF-8exportXIM=fcitxexportXIM_PROGRAM=fcitxexportGTK_IM_MODULE=fcitxexportQT_IM_MODULE=fcitxexportXMODIFIERS="@im=fcitx"eval`dbus-launch--sh-syntax--exit-with-session`execfcitx&第一行的LC_ALL=zh_CNUTF-8是全局,包括菜单栏的文字都是中文的,如果你还想用英文的菜单,可以用以下的代码。3或者输入:exportLC_CTYPE=zh_CNUTF-8exportXIM=fcitxexportXIM_PROGRAM=fcitxexportGTK_IM_MODULE=fcitxexportQT_IM_MODULE=fcitxexportXMODIFIERS="@im=fcitx"eval`dbus-launch--sh-syntax--exit-with-session`execfcitx&4保存,退出。如果还不行,就重启一下电脑。
Qt不是语言,是一个c++类库,多用来编写界面,但是qt类库实际上非常全面,多线程、数据库支持、IO和网络都支持。qt有自己的IDE qtcreator,也可以挂载在vs开发,支持跨平台(windows、linux),安卓也支持但是不推荐用qt写安卓。Qt的文档完整性和可读性非常高,是真正可以照着文档编程的(每个函数都有实例,每个参数都有解释),目前语言支持c++(qt widget项目)、python(pyQt)、Qml(Qt quick项目),qml是qt自己的脚本,类似js
Qt Linguist 的使用方式
lupdate可以把h, cpp, ui中需要翻译的字符串抽出来形成ts文件,然后用linguist翻译,用lerealse生成qm。
*** 作步骤如下:
1 修改pro,在其中添加 TRANSLATIONS = XXX ts或是TRANSLATIONS += XXX ts
如果要生成多个可以用:
TRANSLATIONS =lang_ents \
lang_zhts \
lang_lats
2 执行 lupdate pro,生成XXX ts
3 使用linguist打开XXX ts,进行翻译,翻译结束后,保存成为qm格式的。File->Release As
或者是翻译结束后,使用命令,lrelease XXX ts,生成qm文件。
4 在程序中加入。
QTranslator translator;
translatorload("browser");
appinstallTranslator(&translator);
其中load的是XXXqm中的不包含后缀名的文件名(即XXX)。
注:我之前编写时在Maincpp中加入的东东:
QApplication a(argc, argv);
QTranslator translator;
translatorload("admain_zh");
asetFont(QFont("wenquanyi")); //设置字体库
ainstallTranslator(&translator);
OpenCV是一个开源的图像处理库,QML是Qt官方推出的一个描述性语言,QtMarkupLanguage,QtQuick也是Qt官方推出的一个技术框架,在开发嵌入式、动态触屏等时有一定的优势。
模块的作用:
打一个很简单的比方,QML就是Qt的HTML,C就是Qt的JavaScript,而QtQuick相当于一些已经集成好的开发框架,使开发应用程序变得更加简单省事。
OpenCV是一个基于C/C的开源图像处理库,和Qt本身没有太多关联,其主要是用于计算机视觉和图形开发,Qt的扩展应用OpenCV并不是每个应用程序都要用到,只是某些有特殊需求的应用程序可以更方便地使用Qt扩展的OpenCV应用。比如说用Qt开发一个软件,要使用人脸识别功能,就可以集成OpenCV来实现。
使用频率:
虽然说QML相当于HTML,C相当于JavaScript,但是还是有一定区别:所有的网页都是通过解析HTML渲染出的,JavaScript虽然可以动态改变网页,但是最终还是通过改变HTML来达到效果;QML、C的关系恰好反过来,在Qt中,C是“更加底层”的,QML使用更加简单的标记语言的语法来调用底层的C绘图支持API,从而提高程序开发的效率。
使用QML可以更快速、简捷地开发应用程序,在Qt中的使用频率也是很高的,不过这要根据特定开发人群、开发目标而定。有些开发者习惯直接使用C开发,而有些开发者更喜欢简单的QML,很多时候都是“用QML开发用户界面,用C开发业务逻辑”,但是用C开发用户界面的也不在少数。
QtQuick是一套开发框架,核心语言就是QML。
QtQuick的使用频率不低,从Qt的NewProject界面就可以看出,QtQuick是和Qt传统的CWidge平起平坐的(当然还有QtforPython等)。
OpenCV在不需要图形处理功能的情况下是不需要用到的,所以不怎么好说“使用频率”,因为这是针对特定的软件需求来的。
是否有必要学习:
QtQuick能够使应用程序开发更有效率,但是并不是开发一个程序必备的,能用QtQuick开发的,C肯定能够做出来,但是耗费时间、精力更多。在Qt开发工作这一块,掌握Qt的核心功能是必须的,而且这还远远不够。在招聘的时候肯定是考察应聘者对Qt各种技术和开发思想的理解和掌握情况,而QtQuick是官方推出的框架,掌握其开发方法应该是基本功。
有设置字体吗?
一般情况下在Qt安装目录的lib目录下面有字体文件,如果没有你可以从windows下面拷贝一个“微软雅黑”过去,然后在maincpp中配置下app的字体,应该就可以显示了
#或者在配置启动脚本的时候设置字体路径export QTDIR=/usr/local/qt5
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/
export LD_LIBRARY_PATH=$QTDIR/lib:/lib:/usr/lib:/opt/libxil/lib:$LD_LIBRARY_PATH
以上就是关于Qt 开发,中文显示乱码。请看代码之后再下结论全部的内容,包括:Qt 开发,中文显示乱码。请看代码之后再下结论、QT +Symbian:怎样让程序安装后,在程序菜单里显示中文的名字。、fcitx在qt5的程序中不能输入中文的问题有解决方案么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)