Как сделать, чтобы QTextTable покрывал всю ширину документа - PullRequest
4 голосов
/ 29 января 2020

Я пытаюсь сделать QTextTable внутри QTextDocument для 100% или полной ширины документа. Но в классе QTextTableFormat нет метода для форматирования QTextTable на 100% ширины. Мы можем изменить размер строки и столбца, но не общую таблицу.

Есть ли способ, которым я могу достичь этого, если вы знаете, как, пожалуйста, поделитесь. Спасибо

1 Ответ

4 голосов
/ 29 января 2020

Поскольку QTextTableFormat наследуется от QTextFrameFormat, у него также есть метод setWidth(), который позволяет устанавливать ширину с помощью QTextLength в качестве основы, которая может устанавливать ширину в процентах от ширины документа:

import sys

from PyQt5 import QtCore, QtGui, QtWidgets

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QTextEdit()
    table = w.textCursor().insertTable(4, 5)

    fmt = table.format()
    fmt.setWidth(QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 100))
    table.setFormat(fmt)

    w.show()
    sys.exit(app.exec_())

enter image description here

...