wxPython styledtextctrl:如何在启用换行的情况下获取可见行数?

2024-06-24 11:43:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试确定wxPython styledtextctrl中显示在屏幕上的行数,并启用了换行。你知道吗

我在这里看到了一些关于可见线的答案:

wxPython - StyledTextCtrl get currently visible lines

Get visible lines in Scintilla.NET component

第二个是C#但由于基地仍然闪烁,我认为这是相关的。你知道吗

这些解决方案的问题是,当它们给出行时,假设没有启用换行。如果已启用,并且某些行已换行,则如果未启用换行,则以下闪烁函数将返回值:

LinesOnScreen()

所以我的问题是,如果启用了换行功能,有没有办法获得屏幕上的行数?你知道吗


Tags: 答案ingetnet屏幕wxpython基地component
1条回答
网友
1楼 · 发布于 2024-06-24 11:43:24

我假设您想要的是文档行的数量,而不是显示行的数量。因此,如果启用了包装,则在包装任何行时,前者将小于后者。你知道吗

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

一个完整的解决方案可能相当复杂,特别是当您需要考虑折线和注释之类的事情时。但一个非常基本的解决方案是这样的:

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

但请注意,这并不试图处理屏幕顶部和底部的部分行(这是留给读者的练习)。你知道吗

相关问题 更多 >