1 つのカスタム wx.frame が作成され、内部に 2 つのグリッド コントロールを持つ分割ウィンドウが含まれます。各グリッドのデータを比較するために使用されます。この時点で、2 つのグリッドのスクロールバーが同期スクロールをサポートする必要があります。
質問:
- これら2つのグリッドのスクロールイベントを取得するには? フレームで wx.EVT_SCROLL イベントをビンに入れようとしましたが、失敗しました。また、カスタム グリッド コントロールでスクロール イベントをバインドしようとしましたが、これも失敗しました。
- 2 つのグリッドのスクロールバーを同期してスクロールするにはどうすればよいですか? gridInstance.Scroll(row, col) を使用してグリッド クライアント ウィンドウをスクロールするために言及された関連する質問の回答。ただし、スクロールバーを同期する方法は含まれていません。
ご提案いただきありがとうございます。
カスタムフレームのinitメソッド
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, title='', size=(640,480))
main_panel = wx.Panel(self, -1)
self.TBFLAGS = ( wx.TB_HORIZONTAL| wx.NO_BORDER| wx.TB_FLAT)
self.controller = None
self.isSyncScroll = True
#hsizer = wx.BoxSizer(wx.VERTICAL)
gsizer = wx.FlexGridSizer(rows = 1,
cols = 1,
vgap = 2,
hgap = 2)
gsizer.AddGrowableRow(0)
gsizer.AddGrowableCol(0)
self.tb = self.init_toolbar()
(sub_panel0, sub_panel1) = self.init_splitter(main_panel)
self.grid0 = self.init_grid(sub_panel0)
self.grid1 = self.init_grid(sub_panel1)
self.init_status_bar()
gsizer.Add(main_panel, 1, wx.EXPAND)
self.SetSizer(gsizer)
ico = wx.Icon(u'Compare.ico', wx.BITMAP_TYPE_ICO)
self.SetIcon(ico)
self.Maximize()
#can't catch the scroll event at the frame
self.Bind(wx.EVT_SCROLL, self.OnScroll, self.grid0)
#self.Bind(wx.EVT_SCROLL, self.OnScroll)
#self.Bind(wx.EVT_SCROLL, self.OnScroll, id=self.grid0.GetId())