0

在我正在构建的应用程序中,我正在使用 QTextBrowser 显示一些 HTML。HTML 包含一些嵌套列表,我发现最后一个父项与其第一个子列表项之间有一些额外的空白。

简化示例:

列表.html

<ul>
    <li>Parent List A
        <ul>
            <li>A1</li>
            <li>A2</li>
        </ul>
    </li>
    <li>Parent List B
        <ul>
            <li>B1</li>
            <li>B2</li>
        </ul>
    </li>
</ul>

list_test.py

import sys
from PySide2.QtWidgets import QApplication, QTextBrowser

with open('./list.html') as f:
    html = f.read()

app = QApplication()

text_widget = QTextBrowser()
text_widget.setHtml(html)
text_widget.show()

sys.exit(app.exec_())

生成一个如下所示的小部件:

在此处输入图像描述

同样奇怪的是,它只是父列表的最后一项。所以,如果我添加一个父列表 C:

列表.html

<ul>
    <li>Parent List A
        <ul>
            <li>A1</li>
            <li>A2</li>
        </ul>
    </li>
    <li>Parent List B
        <ul>
            <li>B1</li>
            <li>B2</li>
        </ul>
    </li>
    <li>Parent List C
        <ul>
            <li>C1</li>
            <li>C2</li>
        </ul>
    </li>
</ul>

只有父列表 C 显示了这个额外的空白:

在此处输入图像描述

我正在使用 PySide2 版本 5.11.0 在 Windows 10 上对此进行测试

4

1 回答 1

2

如果您<li>在打开标签之前关闭标签<ul>,则显示不再有问题。

<ul>                                                              
    <li>Parent List A</li>    
        <ul>    
            <li>A1</li>    
            <li>A2</li>    
        </ul>    
    <li>Parent List B</li>                                        
        <ul>                                                      
            <li>B1</li>                                           
            <li>B2</li>                                           
        </ul>                                                     
</ul> 

我目前没有使用 HTML,但我一直使用这种方法,而不是<li>打开并放置一个<ul>内部,所以也许这是有效的 HTML。如果您的 HTML 是标准的,我会重新打开 Qt5 的问题。

于 2019-01-30T22:34:43.857 回答