Qt-Embedded多种字体

时间:2015-05-07 11:46:20

标签: fonts fallback qt4.8 qtembedded

我的系统:

  • Qt Embedded(开源版)4.8
  • Linux Framebuffer for graphics
  • 字体:(拉丁文,日文,希腊文)。(/ usr / lib / fonts)

我正在尝试将拉丁字母与其他类型的字符混合,例如日本。我有拉丁字母和日文字符的字体,但它们不是相同的字体。我研究了这些帖子:

Qt Use Multiple Fonts at the Same Timehow-to-properly-output-multilingual-text-in-qt-embedded

我按照步骤操作,但无法正确显示所有字符

有没有办法表明如果你不能显示字符字体变化?

代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QString chino = QString::fromUtf8("你好");
QString ruso = QString::fromUtf8("здравствуйт");
QString arabe = QString::fromUtf8("سلام عليك");
QString japones = QString::fromUtf8("今日は");
QString otros = QString::fromUtf8("안녕하세요");
QString mezcla = QString::fromUtf8("今a日sはздdр你عل세요");
QString indu = QString::fromUtf8("Γεια σας,안녕하세요,ज्वजलपा");
ui->textochino->setText(chino);
ui->textoruso->setText(ruso);
ui->textoarabe->setText(arabe);
ui->textojapones->setText(japones);
ui->texto1->setText(mezcla);
ui->texto2->setText(indu);
}

MainWindow::~MainWindow()
{
delete ui;
}

1 个答案:

答案 0 :(得分:3)

对于选择列表字体替代我们可以使用insertSubstitutions。例如:

QStringList listFonts;
listFonts <<"Verdana" <<"Droid Sans" <<"Lucida Sans" ;
QFont font("Sans");
font.insertSubstitutions("Sans",listFonts);
font.setStyleStrategy(QFont::PreferAntialias);
ui->mix->setFont(font);