小编Mad*_*ady的帖子

Python Reportlab 自动换行表

我有一个用 python 生成的列表,为了有一个漂亮的布局,我需要在其中自动换行。由于是列表中的列表,我无法使用 Paragraphe () (或者也许有人知道如何使用 - 我无法编写功能代码)

我在这个页面上发现了一个代码,它不会进行自动换行,尽管它是这么说的。

所以这里的问题是: 我如何对 mycells 中的文本进行自动换行,以便表格适合页面并且可以看到所有文本?

这是我的代码(简而言之):

from reportlab.lib.pagesizes import A4
from reportlab.lib.pagesizes import letter, cm
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import LongTable, TableStyle, BaseDocTemplate, Frame, PageTemplate
from reportlab.lib import colors
from reportlab.platypus import Paragraph, Table, TableStyle
########################################################################

def test():
    doc = BaseDocTemplate(
        "question.pdf",
        pagesize=A4,
        rightMargin=72,
        leftMargin=72,
        topMargin=50,
        bottomMargin=80,
        showBoundary=False)

elements = []
data = [['A', 'B', 'C', 'dddddddddddd', 'D'],
        ['00', '0dddddddddddddddddddddddddddddddddddd1', '02', 'fff', '04'],
        ['10', '11', '12', 'dfg', '14'],
        ['20', …
Run Code Online (Sandbox Code Playgroud)

reportlab word-wrap python-3.x

3
推荐指数
1
解决办法
5569
查看次数

如何从搜索列表中突出显示 QTableWidget 中的单词

我想通过单词列表搜索 QTableWidget-Table,如果找到了它们,我希望它们突出显示。

我试图从这里修改代码,以便通过单词列表搜索表格,而不仅仅是一个单词。不幸的是,我的结果不断被覆盖。我总是只得到列表中最后一个单词的结果。

有谁知道如何修改代码,以便显示整个单词列表的结果?

这是代码:

from PyQt5 import QtCore, QtGui, QtWidgets
import random
import html

words_1 = ["Hello dseerfd", "world sdfsdf sdfgsdf sdfsdf", "Stack dasdf", "Overflow", "Hello world", """<font color="red">Hello world</font>"""]

class HTMLDelegate(QtWidgets.QStyledItemDelegate):
    def __init__(self, parent=None):
        super(HTMLDelegate, self).__init__(parent)
        self.doc = QtGui.QTextDocument(self)

    def paint(self, painter, option, index):
        substring = index.data(QtCore.Qt.UserRole)
        painter.save()
        options = QtWidgets.QStyleOptionViewItem(option)
        self.initStyleOption(options, index)
        res = ""
        color = QtGui.QColor("red")
        if substring:
            substrings = options.text.split(substring)
            res = """<font color="{}">{}</font>""".format(color.name(QtGui.QColor.HexRgb), substring).join(list(map(html.escape, substrings)))
        else:
            res = html.escape(options.text)
        self.doc.setHtml(res)

        options.text …
Run Code Online (Sandbox Code Playgroud)

python pyqt qtablewidget pyqt5

2
推荐指数
1
解决办法
711
查看次数

标签 统计

pyqt ×1

pyqt5 ×1

python ×1

python-3.x ×1

qtablewidget ×1

reportlab ×1

word-wrap ×1