2013-06-20 26 views
0

我一直在玩這個cookbook example來用wxPython製作一個可滾動的matplotlib圖。但是,當我在Windows 7機器上運行此代碼時,滾動條似乎無法正常工作。特別是,如果我點擊並拖動它到一個位置,它會更新圖表,但是然後滾動條移回其起始位置,而不是保持放置。我很好奇,如果有人有一個想法這裏發生了什麼。 FWIW,當我在家裏的Linux Mint 14機器上運行它時,此代碼運行良好。wxPython滾動條不會粘住

現在,我試圖通過使用wx.ScrolledWindow或wx.lib.scrolledpanel來修復它,而不是像示例中那樣直接將滾動條添加到畫布。我也正在考慮使用滑塊代替滾動條的

感謝

回答

0

Programing Windows, Fifth Edition(重點煤礦)...

當你使用你的程序中滾動條,與Windows分擔責任 用於維護滾動條並更新滾動條縮略圖的位置 。這些是Windows的責任 滾動條:

  • 處理鼠標消息到滾動條的所有處理。
  • 當用戶單擊滾動條時,提供反向視頻「flash」。
  • 當用戶在滾動條內拖動拇指時移動拇指。
  • 將滾動條消息發送到包含滾動條的窗口的窗口過程。

這是你的程序的責任:

  • 初始化滾動條的範圍和位置。
  • 將滾動條消息處理到窗口過程。
  • 更新滾動條縮略圖的位置。
  • 更改客戶區的內容以響應滾動條的更改。

...在OnScrollEvt()方法,這樣的地方,你需要調用SetScrollPos()喜歡的東西......

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

完美,快速和容易修復。非常感謝:) –

+0

@JohnEdwardson幸運的是,我最近在一個應用程序中遇到了完全相同的問題,所以這對我來說無疑是一件容易的事。 :) – Aya