QTextBrowser显示带有多余空格的嵌套HTML列表

时间:2019-01-29 16:13:35

标签: html-lists pyqt5 qtextedit pyside2 qtextbrowser

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

简化示例:

list.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_())

产生一个看起来像这样的小部件:

enter image description here

还奇怪的是,它只是父列表的最后一项。因此,如果我添加一个父级列表C:

list.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显示了这个额外的空白:

enter image description here

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

1 个答案:

答案 0 :(得分: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。