我是Qt的新手。我在c#中有一个winform应用程序,我在RichTextBox
中显示Microsoft rich text format文本。 RichTextBox是一个控件,您可以编写粗体斜体颜色文本和插入图像等富文本...
现在我想用 qt quick 编写我的应用程序,但我不知道如何显示它以及在哪些控件中?如果这不可能,Qt中rtf的替换是什么? (例如html或......?)所以我可以将rtf转换为html并将html绑定到该控件以显示它。
答案 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
,其中TextField
和Text
- 项目位于中心。您可以在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);