如何用 Qt 中的单个表填充 QTextBrowser?

Posted

技术标签:

【中文标题】如何用 Qt 中的单个表填充 QTextBrowser?【英文标题】:How to fill a QTextBrowser with a single table in Qt? 【发布时间】:2013-07-16 03:34:57 【问题描述】:

过去两天我在 PySide 中一直在 QTextBrowser 中与 html 和 css 搏斗。

我的意图是创建一个类似于屏幕的电视监视器,以在中心显示主要文本,在右侧显示一些辅助信息,并可能在屏幕底部显示一些错误消息。顺便说一句,我不确定桌子是否是正确的方式。

我想知道如何使用 html 和 css 来获得一个双向 100% 跨度的表格。我现在对桌子的高度有疑问。根据 Qt 文档Supported HTML Subset,table 支持以下属性:边框、bgcolor(Qt 颜色名称或#RRGGBB)、单元格间距、单元格填充、宽度(绝对或相对)和高度

但是,当我这样指定高度时: table width: 100%; height: 100% 在 CSS 中 或像这样内联:<table border="1" height:100%>。两者都不起作用。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您是否考虑过使用QGridLayout

它有很多很棒的功能,可以在正确的位置用小部件填充空间。

您可以对尺寸的拉伸、百分比、固定、最小值、最大值等方面进行大量控制。

在网格布局的每个单元格中,放置您计划使用的小部件。

对你来说,听起来他们中的大多数将是QLabels。如果有一些滚动文本,您可以使用QTextEditQTextDocumentQTextBrowser

希望对您有所帮助。

【讨论】:

我知道 QGridLayout。使用 QGridLayout,我必须预先确定必须存在哪些小部件。我更喜欢 QTextBrowser 的原因是更有效地使用该区域。说,我知道正常的消息和错误不会一起出现,所以我可以根据上下文使用相同的空间来显示任何一个。 您不需要事先知道布局中的内容。您可以将 10 个小部件放在同一个位置并隐藏其中的大部分,然后显示您想要的。它确实很强大,但它有一个学习曲线。大多数 GUI 库通常使用布局之类的东西。 qt-project.org/doc/qt-4.8/layout.html现在还需要几分钟才能理解,但稍后你会感谢自己的。 可能我对 TextBrowser 的 HTML 和 CSS 功能的要求太多了。我将放弃尝试并使用您的建议。非常感谢。

以上是关于如何用 Qt 中的单个表填充 QTextBrowser?的主要内容,如果未能解决你的问题,请参考以下文章

如何用颜色填充 box2d-qml 多边形?

旋转QImage时如何用透明背景填充空白?

如何用 Pentaho Kettle 填充我的事实表

如何用多个表填充数据集?

如何用 SQL 表填充 DataTable

如何用多个表填充数据集?