はじめまして、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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/05/08 00:22
2024/05/08 14:26
2024/05/10 08:24