QTextBrowser отображает вложенный список HTML с лишними пробелами - PullRequest
0 голосов
/ 29 января 2019

В приложении, которое я создаю, я отображаю некоторый HTML с помощью QTextBrowser.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 голосов
/ 31 января 2019

Если закрыть теги <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.

...