2013-06-15 2 views
1

Как настроить фокус на конкретную ячейку в wxGrid? Например, я поймаю ввод нажатого события в одной ячейке, и я хочу получить фокус на ячейке , которая находится справа от нее. По умолчанию поведение заключается в том, чтобы получить фокусировку на ячейку ниже, когда нажата клавиша ввода.Настройка фокуса на ячейку wxGrid

ответ

2

WxPython демо показывает вам, как это сделать

import wx 
import wx.grid as gridlib 

#--------------------------------------------------------------------------- 

class NewEnterHandlingGrid(gridlib.Grid): 
    def __init__(self, parent, log): 
     gridlib.Grid.__init__(self, parent, -1) 
     self.log = log 

     self.CreateGrid(20, 6) 

     self.SetCellValue(0, 0, "Enter moves to the right") 
     self.SetCellValue(0, 5, "Enter wraps to next row") 
     self.SetColSize(0, 150) 
     self.SetColSize(5, 150) 

     self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) 


    def OnKeyDown(self, evt): 
     if evt.GetKeyCode() != wx.WXK_RETURN: 
      evt.Skip() 
      return 

     if evt.ControlDown(): # the edit control needs this key 
      evt.Skip() 
      return 

     self.DisableCellEditControl() 
     success = self.MoveCursorRight(evt.ShiftDown()) 

     if not success: 
      newRow = self.GetGridCursorRow() + 1 

      if newRow < self.GetTable().GetNumberRows(): 
       self.SetGridCursor(newRow, 0) 
       self.MakeCellVisible(newRow, 0) 
      else: 
       # this would be a good place to add a new row if your app 
       # needs to do that 
       pass 


#--------------------------------------------------------------------------- 

class TestFrame(wx.Frame): 
    def __init__(self, parent, log): 
     wx.Frame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480)) 
     grid = NewEnterHandlingGrid(self, log) 



#--------------------------------------------------------------------------- 

if __name__ == '__main__': 
    import sys 
    app = wx.App() 
    frame = TestFrame(None, sys.stdout) 
    frame.Show(True) 
    app.MainLoop() 


#--------------------------------------------------------------------------- 
+0

Вот именно то, что мне было нужно, ТНХ человек! – Aleksa

Смежные вопросы