为什么文本显示为框而不是原始语言Qt?

时间:2015-02-21 07:22:44

标签: c++ qt fonts qt-creator qt5

我正在阅读文件如下:

#include "databasemanager.h"

#include<QDebug>
#include<QMessageBox>
#include <QSqlQuery>
#include<QFile>

DatabaseManager::DatabaseManager()
{
    QFile file("words.csv");
    if (file.open(QIODevice::ReadOnly | QIODevice::Text ))
     {
      QTextStream in(&file);
      in.setCodec("UTF-8");

      while(!in.atEnd())
          {
              QString line = in.readLine();
              vals.append(line);
          }

     }else{
        qDebug() << "Could not open";
     }

}

DatabaseManager* DatabaseManager::instance = 0;

DatabaseManager* DatabaseManager::Instance(){
    return instance;
}

QStringList DatabaseManager::getGujaratiMap(){
    return vals;
}

使用以下阅读文本:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include<QTextCodec>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    DatabaseManager *dm = new DatabaseManager();
    QStringList val = dm->getGujaratiMap();

    ui->textBrowser->setText(val.at(100));
}

MainWindow::~MainWindow()
{
    delete ui;
}

我的gedit文本查看器中正确查看了该文件,因此文件没有问题。当我正在阅读文件并使用c ++代码在终端上打印内容时,它会正确打印。我的终端有默认字体“Monospace”,我为textBrowser设置了相同的字体:

<widget class="QTextBrowser" name="textBrowser">
    <property name="geometry">
     <rect>
      <x>70</x>
      <y>30</y>
      <width>256</width>
      <height>192</height>
     </rect>
    </property>
    <property name="font">
     <font>
      <family>Monospace</family>
     </font>
    </property>
   </widget>

仍然是输出:

The text in Gujarati is being displayed as box

我尝试了许多不同的字体(在ui编辑器中可用),但文本仍然是框的形式。还有一件事,当我从QTextBrowser复制文本并将其粘贴到终端或任何文本编辑器中时,它会正确显示。代码中的哪些修改会修复它?

0 个答案:

没有答案