如何使用Qt Quick显示富文本格式(rtf)?

时间:2017-02-06 12:40:04

标签: c# qt qml rtf qtquick2

我是Qt的新手。我在c#中有一个winform应用程序,我在RichTextBox中显示Microsoft rich text format文本。 RichTextBox是一个控件,您可以编写粗体斜体颜色文本和插入图像等富文本...

现在我想用 qt quick 编写我的应用程序,但我不知道如何显示它以及在哪些控件中?如果这不可能,Qt中rtf的替换是什么? (例如html或......?)所以我可以将rtf转换为html并将html绑定到该控件以显示它。

3 个答案:

答案 0 :(得分:2)

我不确定RichTextBox提供的内容,但有两个选项:TextField,它为您提供了一个用户可以输入文本的输入框,以及Text,它只显示文本包括多行和HTML支持。

这里可以看到一个代码示例:

import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Window 2.2

// Filename.qml
Window {
    width: 640
    height: 480

    TextField {
        placeholderText: "I am a TextFiel"
    }

    Text {
        anchors.centerIn: parent
        text: "And I am a Text"
    }
}

此代码信息片会在左上角创建一个新的Window,其中TextFieldText - 项目位于中心。您可以在QtCreator中打开它,然后转到Designer-Tab查看它。

或者,您可以使用Qt本身提供的名为qmlscene的工具运行此代码。如果您已在(Windows)计算机上安装了Qt,并将PATH环境变量设置为例如“C:\ Qt \ 5.7 \ msvc2013 \ bin”(在Windows上),您甚至可以在命令行中运行它。因此,您可以按Alt + Shift +右键单击(文件旁边的空格中的某个位置),选择“在此处打开命令窗口”并输入:

  

qmlscene Filename.qml

答案 1 :(得分:1)

正如derM所指出的那样,QML中不支持Microsoft * .rtf格式,但是对于具有普通富文本的情况,您可以使用来自QML参考的解决方案:

TextEdit {
  width: 240
  text: "<b>Hello</b> <i>World!</i>"
  font.family: "Helvetica"
  font.pointSize: 20
  color: "blue"
  focus: true
}

如果您只想显示富文本:

Text {
  text: "My <b>rich</b> text"
  textFormat: Text.RichText
}

答案 2 :(得分:-1)

使用QTextedit小部件。它也支持html。

QTextEdit* te = new QTextEdit(this);
te->setAcceptRichText(true);
te->setText(myText);