C# 如何使用Qt Quick显示rtf格式?

C# 如何使用Qt Quick显示rtf格式?,c#,qt,qml,rtf,qtquick2,C#,Qt,Qml,Rtf,Qtquick2,我是新来的。我有一个c语言的winform应用程序,其中我在RichTextBox中显示文本。RichTextBox是一个控件,您可以编写类似粗体斜体彩色文本的富文本,并插入图像和 现在我想用qt-quick编写我的应用程序,但我不知道如何显示它以及在哪个控件中?如果这是不可能的,什么是Qt中rtf的替代品?例如html或?因此,我可以将rtf转换为html,并将html绑定到该控件以显示它。使用QTextedit小部件。它也支持html QTextEdit* te = new QTextEdi

我是新来的。我有一个c语言的winform应用程序,其中我在RichTextBox中显示文本。RichTextBox是一个控件,您可以编写类似粗体斜体彩色文本的富文本,并插入图像和


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

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

QTextEdit* te = new QTextEdit(this);
te->setAcceptRichText(true);
te->setText(myText);
我不确定RichTextBox提供了什么,但有两个选项:,它为您提供了一个输入框,用户可以在其中输入文本;它只显示包含多行和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"
    }
}
此代码snipplet创建一个新窗口,左上角有一个textfield,中间有一个文本项。您可以在QtCreator中打开此文件,然后转到Designer选项卡查看它

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

qmlscene Filename.qml


正如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
}

这是QtWidget,但是OP询问了qtquick,也就是QML。但是我想要在qt quick note widget中。虽然这被称为RichText,但我怀疑它能否满足OP的要求,因为他要求输出具有另一个标记的。对于你的答案仍然+1,因为它应该有助于OP,编写一个从RTF到HTML的翻译程序。您可以在您的答案后面附加一个信息,即QML中没有实现RTF支持。