#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;
}