我需要编写一个包含多个标尺的gui,允许用户选择将传递给以后代码的起始值和结束值。 wx.lib.rulercntl似乎拥有我需要的一切。我是wxpython的新手,不知道如何去做。有没有人做过类似的事情?我已经找到了一些关于rulercntl的文档,但是不理解它。
提前感谢您的帮助,
答案 0 :(得分:0)
这是一个简短的例子,用于设置带有两个指示符的RulerCtrl,并在移动其中一个时报告新位置。
import wx, wx.lib.agw.rulerctrl as rc
class MainWindow(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
self.ruler = rc.RulerCtrl(self, orient=wx.HORIZONTAL)
self.ruler.AddIndicator(id=100, value=0.0)
self.ruler.AddIndicator(id=101, value=6.5)
self.text = wx.TextCtrl(self, style=wx.TE_MULTILINE)
self.ruler.Bind(rc.EVT_INDICATOR_CHANGED, self.onIndicator)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.ruler, 0, wx.EXPAND)
self.sizer.Add(self.text, 1, wx.EXPAND)
self.sizer.SetMinSize((400,300))
self.SetSizer(self.sizer)
self.sizer.Fit(self)
self.Show()
def onIndicator(self, evt):
ind_id = evt.GetId()
ind_pos= evt.GetValue()
self.text.AppendText('Indicator %s: %s\n' % (ind_id,ind_pos))
evt.Skip()
app = wx.App(False)
frame = MainWindow(None, wx.ID_ANY, "RulerCtrl")
app.MainLoop()