#include "mainwindow.h" #include "ui_mainwindow.h" #include <QFontDatabase> #include <QMessageBox> #include <QTextCodec> #include <QString> #include <QFile> #include <QDebug> #define TR(s) (QString::fromUtf8(s)) bool MainWindow::canOpenFontFile(QString fileName) { if (fileName.isEmpty()) { return false; } else { QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::information( this, TR("Unable to open file:\n"), file.errorString()+ "\n"+fileName); return false; } } return true; } bool MainWindow::canAddDb(QFontDatabase database, QString fileName) { if (canOpenFontFile(fileName)) { int result = database.addApplicationFont(fileName); if (result == -1) { QMessageBox::information( this, TR("Unable to install font file:\n"), "fileName="+fileName); return false; } } return true; } MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) { QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); ui->setupUi(this); QString path = ":/fonts/"; QString fileNameOrg = path + "org.ttf"; QFontDatabase databaseOrg; if(canAddDb(databaseOrg, fileNameOrg)) { QFont f = databaseOrg.font("myfont","Normal",12); f.setStyleHint(QFont::AnyStyle, QFont::StyleStrategy( QFont::PreferBitmap | QFont::NoAntialias)); f.setFixedPitch(true); f.setPixelSize(12); ui->label01->setFont(f); ui->label02->setFont(f); ui->label03->setFont(f); ui->label04->setFont(f); ui->label05->setFont(f); ui->label06->setFont(f); ui->label07->setFont(f); ui->label08->setFont(f); } QString fileNameEbdt = path + "ebdt12.ttf"; QFontDatabase databaseEbdt; if(canAddDb(databaseEbdt, fileNameEbdt)) { QFont f = databaseEbdt.font("myEbdt","Normal",12); f.setStyleHint(QFont::AnyStyle, QFont::StyleStrategy( QFont::PreferBitmap | QFont::NoAntialias)); f.setFixedPitch(true); f.setPixelSize(12); ui->label11->setFont(f); ui->label12->setFont(f); ui->label13->setFont(f); ui->label14->setFont(f); ui->label15->setFont(f); ui->label16->setFont(f); ui->label17->setFont(f); ui->label18->setFont(f); } QString str01 = fileNameOrg; QString str02 = TR("!#$%&<>?_+*=~{} 0123456789"); QString str03 = TR("abcdefghijklmnopqrstuvwxyz"); QString str04 = TR("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); QString str05 = TR("美しい文字 あいうえお"); QString str06 = TR("5月1日には西日本の上空およそ5500メートルに-21℃以下"); QString str07 = TR("、東日本の上空に-24℃以下の寒気が流れ込むため、"); QString str08 = TR("西~東日本にかけて大気の状態が非常に不安定となる見込み。"); ui->label01->setText(str01); ui->label02->setText(str02); ui->label03->setText(str03); ui->label04->setText(str04); ui->label05->setText(str05); ui->label06->setText(str06); ui->label07->setText(str07); ui->label08->setText(str08); QString str11 = fileNameEbdt; ui->label11->setText(str11); ui->label12->setText(str02); ui->label13->setText(str03); ui->label14->setText(str04); ui->label15->setText(str05); ui->label16->setText(str06); ui->label17->setText(str07); ui->label18->setText(str08); } MainWindow::~MainWindow() { delete ui; }