QTextOption includeTrainlingSpaces

问题描述 投票:0回答:1

我正在学习QTextOption标志。其中包含includeTrailingSpaces标志。我将选项设置为我的编辑。并看到了结果。

QTextOption.IncludeTrailingSpaces设置此选项后,QTextLine.naturalTextWidth()和naturalTextRect()将返回一个值,该值包括文本中尾随空格的宽度。否则,将不包括此宽度。

但是两种情况都包括空格的宽度。我应该在何时何地使用此标志?我想澄清一下。

样本代码

import os
import PySide2
from PySide2 import QtWidgets , QtGui , QtCore
import sys
dirname  =  os.path.dirname(PySide2.__file__)
plugin_path  =  os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH']  =  plugin_path    
def main():
    if QtWidgets.QApplication.instance() is None:
        app = QtWidgets.QApplication([])
    else:
        app = QtWidgets.QApplication.instance()
    textEdit = QtWidgets.QTextEdit()
    option = textEdit.document().defaultTextOption()
    option.setFlags(
#                    QtGui.QTextOption.Flag.AddSpaceForLineAndParagraphSeparators|\
                    QtGui.QTextOption.Flag.IncludeTrailingSpaces
#                    QtGui.QTextOption.Flag.ShowDocumentTerminator|\
#                    QtGui.QTextOption.Flag.ShowLineAndParagraphSeparators|\
#                    QtGui.QTextOption.Flag.ShowTabsAndSpaces|\
#                    QtGui.QTextOption.Flag.SuppressColors
                    )
    def checkTranlingSpaceEffect():
        tc = textEdit.textCursor()
        block = tc.block()
        layout = block.layout()
        line = layout.lineAt(0)
        naturalTextWidth = line.naturalTextWidth()
        #It seems that it is the same result when the flag is not set.
        print(naturalTextWidth)        
    textEdit.document().setDefaultTextOption(option)
    textEdit.connect(textEdit, QtCore.SIGNAL("textChanged()"), checkTranlingSpaceEffect)        
    textEdit.show()
    sys.exit(app.exec_())
if __name__ ==  "__main__":
    main()
python pyside2 qtextedit qtextdocument
1个回答
0
投票

作为研究结果,此标记当前无效。

根据woboq,includeTranlingSpaces取决于SpaceData.length

此变量在layout_helperQTextLayout方法中使用。

但是尽管存在API文档,我们现在仍无法使用此方法。

如果要删除空格,我们别无选择,只能自己删除空格。

如果我现在考虑的话,这些标志相对于Qt4有所改进。

此标志将在将来的版本中得到改进。可能。

© www.soinside.com 2019 - 2024. All rights reserved.