I have a part of HTML code, which displays small table. In browser it looks like in the picture:
But when I want to display it in Text QML (which, according to the documentation, should support HTML), I see:
(Orange rectangle is a part of rectangle, which is parent of mytext
)
Text {
id: mytext
anchors.fill: parent
text: "<div><table border='1'><caption><h4>Test stats</h4>"+
"</caption><tr bgcolor='#9acd32'><th/><th>Number1</th><th>Number2</th></tr> <tr><th>Line1</th>"+
"<td> 0 </td> <td> 1 </td> </tr> <tr><th>Line2</th> <td> 0 </td> <td> 1 </td> </tr>"+
"<tr><th>Line3</th> <td> 0 </td> <td> 0 </td> </tr> <tr><th>Line4</th> <td> 1 </td> <td> 0 </td> </tr>"+
"<tr><th>Line5</th> <td> 1 </td> <td> 1 </td> </tr> <tr><th>Line6</th> <td> 1 </td> <td> 1 </td> </tr> </div>"
}
So how to display correctly this HTML table in QML (QtQuick 2.0)? Is it possible without using WebView?
Displaying and Formatting Text To display text in QML, create a Text item and set the text property to the text you wish to display. The Text item will now display that text. Several properties can be set on the Text item to style the entire block of text. These include color, font family, font size, bold and italic.
Although QML is not a substitute for HTML – they were designed with different goals in mind – I think QML would make a great web technology. No matter which client framework is currently in fashion, building an UI on top of HTML is using the wrong abstraction for the wrong purpose.
QML is the language; its JavaScript runtime is the custom V4 engine, since Qt 5.2; and Qt Quick is the 2D scene graph and the UI framework based on it. These are all part of the Qt Declarative module, while the technology is no longer called Qt Declarative.
Add textFormat: Text.RichText
:
Text {
id: mytext
anchors.fill: parent
textFormat: Text.RichText
text: "<div><table border='1'><caption><h4>Test stats</h4>"+
"</caption><tr bgcolor='#9acd32'><th/><th>Number1</th><th>Number2</th></tr> <tr><th>Line1</th>"+
"<td> 0 </td> <td> 1 </td> </tr> <tr><th>Line2</th> <td> 0 </td> <td> 1 </td> </tr>"+
"<tr><th>Line3</th> <td> 0 </td> <td> 0 </td> </tr> <tr><th>Line4</th> <td> 1 </td> <td> 0 </td> </tr>"+
"<tr><th>Line5</th> <td> 1 </td> <td> 1 </td> </tr> <tr><th>Line6</th> <td> 1 </td> <td> 1 </td> </tr> </div>"
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With