QTextEdit HTML子集<img/>中不需要的填充

时间:2017-09-08 15:56:17

标签: html image html-table pyqt padding

我正在尝试在QTextEdit子集内的表格html中插入图像。 我希望该图像与桌子宽度完美契合。 不幸的是,Qt没有任何顺利,并且在图像的右侧和下方留下了恼人的填充。

以下是简化代码(使用任何图像进行测试),任何人都知道如何避免它?

enter image description here

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import QCoreApplication, QRect, Qt

class Labhtml(QTextEdit):

    def __init__(self):
        super().__init__()

        html= '''
            <table border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td>
                    <img src="bar.png">
                </td>
            </tr>
            </table>
        '''

        self.setText(html)


class Example(QScrollArea):
    def __init__(self):
        super().__init__()

        widget = QWidget()
        layout = QVBoxLayout(widget)
        layout.setAlignment(Qt.AlignTop)

        layout.addWidget(Labhtml())

        self.setWidget(widget)
        self.setWidgetResizable(True)

        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

当涉及到我几乎要放弃的子集时,Qt充满了这些故障。

1 个答案:

答案 0 :(得分:1)

问题是由您在td标记中添加的空格引起的。因此解决问题的一种方法是:

<table border="1" cellspacing="0" cellpadding="0">
<tr>
    <td><img src="image.png"></td>
</tr>
</table>

或者,使用小于图像的固定尺寸:

<table border="1" cellspacing="0" cellpadding="0">
<tr>
    <td width="0" height="0">
        <img src="image.png">
    </td>
</tr>
</table>