QtでQGraphicsViewに配置したQLabelの文字列の長音記号が消えてしまう

はじめまして、KATA_KANと申します。

実現したいこと

Qt を使用して、長音記号付きの文字列(例:Ōsakihirokōji)を書き込んだQLabelをQGraphicsViewに出力し、文字列の回転をさせようとしています。

前提

長音記号付きの文字列をQLabelに書き込み、QGraphicsViewに出力するところまでは上手くいったのですが、出力された文字列の長音記号のうち、"Ō"についた長音記号が外れ"O"になって表示されてしまっていました。小文字の"ō"についた長音記号は残っていました。

発生している問題

画像は上から
・デザイナーのQLabelのプロパティのtextに直接「Ōsakihirokōji」を入力した場合
・プログラムからQLabelのtextに「Ōsakihirokōji」を入力した後、QGraphicsViewに出力した場合
・プログラムからQLabelのtextに「Ōsakihirokōji」を入力し出力した場合
イメージ説明
画像のように、QGraphicsViewに出力した場合に、"Ō"についた長音記号が外れてしまっています。
長音記号をつけたままで、QGraphicsViewに文字列を出力する方法はありますでしょうか?

該当のソースコード

●mainwindow.cpp

#include "mainwindow.h" #include <QtCore/QDebug> #include <QMovie> #include <QGraphicsScene> #include <QGraphicsProxyWidget> #include <QTimer> #include <QScrollBar> #include <string> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); QLabel *label_temp1 = new QLabel(); label_temp1->setText("Ōsakihirokōji"); label_temp1->setFont(QFont("TT-Clarimo UD PE", 30)); QGraphicsScene *scene1 = new QGraphicsScene(this); scene1->addWidget(label_temp1); ui->graphicsView_1->setScene(scene1); ui->label_2->setText("Ōsakihirokōji"); ui->label_2->setFont(QFont("TT-Clarimo UD PE", 30)); } MainWindow::~MainWindow() { }

●mainwindow.h

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "ui_mainwindow.h" #include <QMainWindow> class MainWindow : public QMainWindow, private Ui::MainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H

※上記以外は、プロジェクトを新規作成したままの状態です。

試したこと

・文字コードの違いがあるかと思い、ソースコード上の"Ōsakihirokōji"を修正するも効果なし
→同じ文字列をQLabelに単純に出力した場合は長音記号ありで出力できていた。

補足情報(FW/ツールのバージョンなど)

開発環境 : Linux(Ubuntu 18.04)
Qt Creator : 4.15.0
Qt : 5.15.2

コメントを投稿

0 コメント