Как я могу получить согласованное поведение на моем wxPython StyledTextControl? - PullRequest
0 голосов
/ 05 января 2011

У меня проблема с wxPython.Я пытаюсь иметь прокручиваемое окно без видимой полосы прокрутки.Я все еще хочу иметь возможность использовать колесо мыши для прокрутки, а также использовать сочетания клавиш, которые я написал.

У меня есть следующий упрощенный код:

import wx
import wx.stc

app = wx.App(0)
frame = wx.Frame(None, wx.ID_ANY, "Sample Scroll pane")

textViewer = wx.stc.StyledTextCtrl(frame, wx.ID_ANY)
textViewer.Text = "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22"

textViewer.SetUseVerticalScrollBar(False)
textViewer.ScrollLines(1)

frame.Show()
app.MainLoop()

Я использую функцию "ScrollLines" для программной прокрутки моего текста.На машине с Windows это работает как положено и прокручивается вниз на одну строку.Однако в Ubuntu текст не прокручивается, если «SetUseVerticalScrollBar» имеет значение false.

Как скрыть полосу прокрутки, поддерживая ее функциональность в кросс-платформенном режиме?

1 Ответ

1 голос
/ 10 января 2011

ScrollToLine, похоже, работает согласованно в Windows и Linux, поэтому вы можете заменить вызов ScrollLines чем-то вроде этого:

first = textViewer.GetFirstVisibleLine()
textViewer.ScrollToLine(first + n)

где n - количество строк для прокрутки вниз.

...