qt5 custom font
違うフォントが表示されているように思う。
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QFileDialog> #include <QMessageBox> #include <QTextCodec> #include <QFontDatabase> #define TR(s) (QString::fromLocal8Bit(s)) bool MainWindow::canOpenFontFile(QString fileName) { qint32 fontId = 0; 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) { ui->setupUi(this); QString path = QCoreApplication::applicationDirPath(); QString fileName = path +"/org.ttf"; QFontDatabase database; if(canAddDb(database, fileName)) { QFont f = database.font("myfont", "normal", 12); // f.setPointSize(12); ui->label01->setFont(f); ui->label02->setFont(f); ui->label03->setFont(f); } QString str01 = path; ui->label01->setText(str01); ui->label02->setText(TR("!#$%& 0123456789 abcdefghijklmnopqrstuvwxyz あいうえお 美しいフォント")); ui->label03->setText(TR("ヤマト、最大180円値上げ=基本運賃、27年ぶり")); QString str11 = path; ui->label11->setText(str11); ui->label12->setText(TR("!#$%& 0123456789 abcdefghijklmnopqrstuvwxyz あいうえお 美しいフォント")); ui->label13->setText(TR("ヤマト、最大180円値上げ=基本運賃、27年ぶり")); } MainWindow::~MainWindow() { delete ui; }