gpt4 book ai didi

python - wxPython styledtextctrl : How to get number of visible lines with word wrapping enabled?

转载 作者:太空宇宙 更新时间:2023-11-03 16:21:59 24 4
gpt4 key购买 nike

我正在尝试确定启用自动换行的 wxPython styledtextctrl 中屏幕上显示的行数。

我在这里看到了几个可见线的答案:

wxPython - StyledTextCtrl get currently visible lines

Get visible lines in Scintilla.NET component

第二个是针对 C# 的,但由于基础仍然 Scintilla ,我认为它是相关的。

这些解决方案的问题是,虽然它们给出了行,但它们是在假设未启用自动换行的情况下这样做的。如果启用它,并且某些行被换行,则以下 scintilla 函数将返回未启用换行的值:

LinesOnScreen()

所以我的问题是,在启用自动换行的情况下,有什么方法可以获取屏幕上的行数吗?

最佳答案

我假设您想要的是文档行数,而不是显示行数。因此,如果启用换行,则如果有任何行被换行,前者将小于后者。

正如您已经发现的,LinesOnScreen() 将给出可见的显示行数。但目前没有内置工具来获取可见文档行数,因此需要进行计算。

完整的解决方案可能非常复杂,特别是如果您需要考虑行折叠和注释等问题。但一个非常基本的解决方案是这样的:

    index = editor.GetFirstVisibleLine()
lines = editor.LinesOnScreen() + index
count = 0
while index < lines:
index += editor.WrapCount(index)
count += 1

但请注意,这并不尝试处理屏幕顶部和底部的部分线条(这留给读者作为练习)。

关于python - wxPython styledtextctrl : How to get number of visible lines with word wrapping enabled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38358541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com