0

我的系统:

  • Qt Embedded(开源版)4.8
  • 用于图形的 Linux 帧缓冲区
  • 字体:(拉丁文、日文、希腊文)。(/usr/lib/fonts)

我正在尝试将拉丁字母与其他类型的字符(例如日语)混合。我有拉丁字母和日文字符的字体,但它们不是同一种字体。我研究了以下帖子:

Qt 同时使用多种字体以及如何正确输出多语言文本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;
}
4

1 回答 1

7

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

QStringList listFonts;
listFonts <<"Verdana" <<"Droid Sans" <<"Lucida Sans" ;
QFont font("Sans");
font.insertSubstitutions("Sans",listFonts);
font.setStyleStrategy(QFont::PreferAntialias);
ui->mix->setFont(font);
于 2015-06-04T10:40:59.683 回答