wxPython滚动条不坚持

时间:2013-06-20 20:12:40

标签: python matplotlib wxpython scrollbar

我一直在玩这个cookbook example来制作一个带有wxPython的可滚动matplotlib图。但是,当我在工作时在我的Windows 7机器上运行此代码时,滚动条似乎无法正常工作。特别是,如果我单击并将其拖动到某个位置,它会更新绘图,但滚动条会移回其起始位置,而不是保持放置。如果有人知道这里发生了什么,我很好奇。 FWIW,当我在家里的Linux Mint 14机器上运行它时,这段代码运行正常。

现在,我正在尝试通过使用wx.ScrolledWindow或wx.lib.scrolledpanel来修复它,而不是像示例中那样直接将滚动条添加到画布。我还在考虑使用滑块而不是滚动条

谢谢

1 个答案:

答案 0 :(得分:0)

来自Programing Windows, Fifth Edition(强调我的)......

  

在程序中使用滚动条时,您将分担责任   用Windows维护滚动条并更新位置   滚动条拇指。这些是Windows的责任   滚动条:

     
      
  • 处理鼠标消息的所有处理到滚动条。
  •   
  • 当用户点击滚动条时,提供反向视频“闪光”。
  •   
  • 当用户在滚动条中拖动拇指时移动拇指。
  •   
  • 将滚动条消息发送到包含滚动条的窗口的窗口过程。
  •   
     

这些是您的计划的责任:

     
      
  • 初始化滚动条的范围和位置。
  •   
  • 将滚动条消息处理为窗口过程。
  •   
  • 更新滚动条缩略图的位置。
  •   
  • 更改客户区的内容以响应滚动条的更改。
  •   

...所以在OnScrollEvt()方法的某个地方,您需要调用SetScrollPos(),例如......

self.canvas.SetScrollPos(wx.HORIZONTAL, event.GetPosition(), True)