免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1690 | 回复: 0
打印 上一主题 下一主题

Core Windows/Controls → Grid [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-19 18:59 |只看该作者 |倒序浏览

import wx
import wx.grid
class Frame(wx.Frame):
def __init__(
  self, parent=None, id=-1, title='wx.grid.Grid', pos=wx.DefaultPosition,
  size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE
  ):
  
  wx.Frame.__init__(self, parent, id, title, pos, size, style)
  self.SetIcon(wx.Icon('wxWidgets.ico', wx.BITMAP_TYPE_ICO))
  self.CreateStatusBar()
  
  self.Grid = wx.grid.Grid(self, -1)
  self.Grid.CreateGrid(6, 6)
  
  self.Grid.SetCellEditor(0, 0, wx.grid.GridCellNumberEditor(1, 1000))
  self.Grid.SetCellValue(0, 0, '100')
  
  self.Grid.SetCellEditor(1, 0, wx.grid.GridCellFloatEditor())
  self.Grid.SetCellValue(1, 0, '3.14')
  
  TextEditor = wx.grid.GridCellTextEditor()
  TextEditor.SetParameters('6') # What is meaning?
  self.Grid.SetCellEditor(2, 0, TextEditor)
  self.Grid.SetCellValue(2, 0, 'Python C++')
  
  self.Grid.SetCellEditor(3, 0, wx.grid.GridCellBoolEditor())
  # self.Grid.SetCellValue(3, 0, 'True')
  
  Languages = ['C', 'C++', 'Python', 'Java', 'Perl', 'Ruby']
  ChoiceEditor = wx.grid.GridCellChoiceEditor(Languages)
  self.Grid.SetCellEditor(4, 0, ChoiceEditor)
  
  
  self.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnCellLeftClick)
  self.Bind(wx.grid.EVT_GRID_CELL_RIGHT_CLICK, self.OnCellRightClick)
  self.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK, self.OnCellLeftDClick)
  self.Bind(wx.grid.EVT_GRID_CELL_RIGHT_DCLICK, self.OnCellRightDClick)
  
  self.Bind(wx.grid.EVT_GRID_LABEL_LEFT_CLICK, self.OnLabelLeftClick)
  self.Bind(wx.grid.EVT_GRID_LABEL_RIGHT_CLICK, self.OnLabelRightClick)
  self.Bind(wx.grid.EVT_GRID_LABEL_LEFT_DCLICK, self.OnLabelLeftDClick)
  self.Bind(wx.grid.EVT_GRID_LABEL_RIGHT_DCLICK, self.OnLabelRightDClick)
  
  self.Bind(wx.grid.EVT_GRID_ROW_SIZE, self.OnRowSize)
  self.Bind(wx.grid.EVT_GRID_COL_SIZE, self.OnColSize)
  
  self.Bind(wx.grid.EVT_GRID_RANGE_SELECT, self.OnRangeSelect)
  self.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnCellChange)
  self.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.OnSelectCell)
  
  self.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN, self.OnEditorShown)
  self.Bind(wx.grid.EVT_GRID_EDITOR_HIDDEN, self.OnEditorHidden)
  self.Bind(wx.grid.EVT_GRID_EDITOR_CREATED, self.OnEditorCreated)
  

def OnCellLeftClick(self, event):
  self.SetStatusText('You Have Left-Clicked On Cell(%d, %d)!' % (event.GetRow(), event.GetCol()))
  # Attention!
  # Normally event must skip to wx.grid.Grid
  # Of course event can veto.
  event.Skip()
  

def OnCellRightClick(self, event):
  self.SetStatusText('You Have Right-Clicked One Cell(%d, %d)!' % (event.GetRow(), event.GetCol()))
  event.Skip()
  

def OnCellLeftDClick(self, event):
  self.SetStatusText('You Have Left-Double-Clicked One Cell(%d, %d)!' % (event.GetRow(), event.GetCol()))
  event.Skip()
  
  
def OnCellRightDClick(self, event):
  self.SetStatusText('You Have Right-Double-Clicked One Cell(%d, %d)!' % (event.GetRow(), event.GetCol()))
  event.Skip()
  

def OnLabelLeftClick(self, event):
  self.SetStatusText('You Have Left-Clicked On Label "%s"!' % event.GetString())
  event.Skip()
  
  
def OnLabelRightClick(self, event):
  self.SetStatusText('You Have Right-Clicked On Label "%s"!' % event.GetString())
  event.Skip()
  
  
def OnLabelLeftDClick(self, event):
  self.SetStatusText('You Have Left-Double-Clicked On Label "%s"!' % event.GetString())
  event.Skip()
  
  
def OnLabelRightDClick(self, event):
  self.SetStatusText('You Have Right-Double-Clicked On Label "%s"!' % event.GetString())
  event.Skip()
  
  
def OnRowSize(self, event):
  self.SetStatusText('The Size of Row %d Has Been Changed!' % event.GetRowOrCol())
  event.Skip()
  
  
def OnColSize(self, event):
  self.SetStatusText('The Size of Col %d Has Been Changed!' % event.GetRowOrCol())
  event.Skip()
  
  
def OnRangeSelect(self, event):
  self.SetStatusText('Cell(%d, %d) ~ Cell(%d, %d) Has Been Selected!' %\
       (event.GetTopRow(), event.GetLeftCol(), event.GetBottomRow(), event.GetRightCol()))
  event.Skip()
  

def OnCellChange(self, event):
  self.SetStatusText('Cell(%d, %d) Has Been Changed!' % (event.GetRow(), event.GetCol()))
  event.Skip()
  
  
def OnSelectCell(self, event):
  self.SetStatusText('Cell(%d, %d) Has Been Selected!' % (event.GetRow(), event.GetCol()))
  event.Skip()


def OnEditorShown(self, event):
  self.SetStatusText('Editor Has Been Shown On Cell(%d, %d)' % (event.GetRow(), event.GetCol()))
  event.Skip()
  
  
def OnEditorHidden(self, event):
  self.SetStatusText('Editor Has Been Hidden On Cell(%d, %d)' % (event.GetRow(), event.GetCol()))
  event.Skip()
  

def OnEditorCreated(self, event):
  self.SetStatusText('Editor Has Been Created On Cell(%d, %d)' % (event.GetRow(), event.GetCol()))
  event.Skip()
  

def TestFrame():
app = wx.PySimpleApp()
frame = Frame(size=(640, 480))
frame.Centre()
frame.Show()
app.MainLoop()


if __name__ == '__main__':
TestFrame()


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/35936/showart_281856.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP