英创信息技术主板Qt Embedded中文显示示例

描述

Qt移植到ARM平台以后,自带的字库并不能很好的支持中文字体的显示,为了方便客户的开发工作,英创公司在嵌入式主板Qt Embedded的字库中加入了一些字体文件,经过测试,英创嵌入式主板Qt Embedded已经能够很好的支持中文字体的显示,并且可以自己改变字体大小和颜色。

当然如果客户希望使用一些不同的字体,可以将需要的字体文件拷贝至主板的/opt/qt-4.5/lib/font/目录下,在Qt的应用程序中指定要使用的字体即可。下面说明一下程序上的实现。

在Qt creator中创建新的项目,添加main.cpp文件。每一个使用Qt的应用程序都必须包含QApplication,它管理了各种各样的资源。在Qt Embedded中,还需要包含QWSServer,因为在嵌入式平台, QT会是以QWS方式运行。所以至少需要包含这两个头文件:

#include  
        #include

在Qt中,每一个类都有一个与其同名的头文件,这里我们可以使用QDialog类和QLable类来显示最简单几个汉字,所以加上: 
        #include  
        #include

接下来就是C++中最常见到的main()函数,首先需要的是创建一个QApplication类对象,用于管理应用程序资源,注意,任何一个Qt程序都要有一个QApplication类对象。接着创建一个QDialog类和一个 QLable类,我们让QLable类作为子窗口显示在QDialog类中,代码如下:

int main(int argc, char *argv[]) 
        { 
                QApplication a(argc, argv); 
                QDialog w; 
                QLabel label(&w); 
        }

下面在label中显示几个简单的汉字,并移动到我们想要的位置,继续在main()函数中代码如下: 
        label.setText(QObject::tr('Hello World! 你好Qt!')); 
        label.move(120, 120);

接下来可以指定字体,设置大小和颜色,指定字体的语句为: 
        w.setFont(QFont('simsun_2_50',11,QFont::Normal)) 
        QPalette pe; 
        pe.setColor(QPalette::WindowText,Qt::blue); 
        label.setPalette(pe);

这里的“simsun_2_50”是英创公司加入的中文字体,根据需要跟改为客户自己拷贝的字体文件名称,“11”是字体大小,“Normal”指正常字体(不加粗),blue为颜色。

最后我们要使用show()函数让他们都显示出来,并且让QApplication对象进入时间循环: 
        w.show(); 
        return a.exec();

编译完成,在英创嵌入式主板中运行,就能在LCD上面显示“Hello World! 你好Qt!”了,这里英创公司基于中文显示,做了一个演示的界面。

下面就是一个在EM335x主板上面运行中文显示的示例:

嵌入式主板

EM335x主板上Qt演示效果

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分