如何在我的wxPython StyledTextControl上获得一致的行为?

时间:2011-01-05 18:30:54

标签: python user-interface scroll wxpython

我遇到了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 个答案:

答案 0 :(得分:1)

ScrollToLine似乎在Windows和Linux上运行一致,因此您可以用以下内容替换ScrollLines调用:

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

其中n是向下滚动的行数。