编辑器时被触发。该事件实例的方法有GetCol(), GetRow(), 和GetControl(),它们分别返回发生事件的列,行的索引和使用的编辑控件。
如何捕获用户的键盘动作?
除了使用鼠标外,用户还可以使用键盘来在网格中移动。你可以通过代码的方法来使用表14.10中的移动方法改变光标。其中的许多方法都要求一个expandSelection参数。每个方法中的expandSelection的作用都相同。如果这个参数为True,那么当前的选项将被扩展以容纳这个新的光标位置。如果这个参数为False,那么当前的选项被新的光标所取代。
表14.10 网格光标移动方法
MoveCursorDown(expandSelection) 向下移动光标。如果expandSelection为False,等同于按下\下箭头键\,如果为True,则等同于按下\下箭头键\。 向下移动光标。如果expandSelection为False,则等同于\下箭头键\,如果为True,则等同于\下箭头键\。 向左移动光标。如果expandSelection为False,等同于按下\左箭头键\,如果为True,则等同于按下\左箭头键\。 向左移动光标。如果expandSelection为False,则等同于\左箭头键\,如果为True,则等同于\左箭头键\。 向右移动光标。如果expandSelection为False,等同于按下\右箭头键\,如果为True,则等同于按下\右箭头键\。 MoveCursorDownBlock(expandSelection) MoveCursorLeft(expandSelection) MoveCursorLeftBlock(expandSelection) MoveCursorRight(expandSelection) 向右移动光标。如果expandSelection为False,则等MoveCursorRightBlock(expandSelection) 同于\右箭头键\,如果为True,则等同于\右箭头键\。 MoveCursorUp(expandSelection) 向上移动光标。如果expandSelection为False,等同于按下\上箭头键\,如果为True,则等同于按下\上箭头键\。 向上移动光标。如果expandSelection为False,则等同于\上箭头键\,如果为True,则等同于\上箭头键\。 显示下一页的单元格。 显示上一页的单元格。 MoveCursorUpBlock(expandSelection) MovePageDown() MovePageUp() 我们已经涵盖了所有你需要了解的有关单元格的知识。在下一章中,我们将讨论树形控件。
本章小结
1、网格控件使你能够创建像电子表格一样的网格表,并具有很大的可控性和灵活性。网格控件是类wx.grid.Grid的一个实例。通常,如果使用网格控件处理复杂的问题的话,你应该通过__init__方法来定义它的子类,这是值得的,而非仅仅创建基类的一个实例并在程序的其它地方调用它的方法。
2、有两种方法用来将数据放入一个网格控件中。网格控件可以使用
CreateGrid(numRows, numCols)方法被显式创建,然后使用
SetCellValue(row, col, s)方法来设置单个的单元格。另一种是,你可以创建一个
网格表的实例,该网格表作为网格的一个模型,它使你可以很容易地使用另一数据源的数据并显示在网格中。网格表是wx.grid.PyGridTableBase的子类,
wx.grid.PyGridTableBase的方法中,GetValue(row, col)可以被覆盖以在显示一个单元格时驱动网格的行为。网格表被连接到网格控件使用方法SetTable(table)。当使用网格表的方法创建了网格后,可以通过网格表的方法来改变网格的行和列数。
3、网格也有行和列标签,标签有默认的值,类似于电子表格。标签所显示的文本和标签的其它显示属性可以使用网格的方法来改变。每个项的行和列的尺寸可以被显式了设置,或者网格可以根据所显示的自动调整尺寸。用户也可通过拖动网格线来改变网格的尺寸。如果需要的话,你可以为每行或每列设置一个最小的尺寸,以防止单元格变得太小而不能显示相应的数据。另外,特定的单元格了能使用
SetCellSize(row, col, numrows, numcols)方法来达到跨行或列的目的。
4、用户可以选择网格中的一个或多个矩形范围的网格,这也可以通过使用很多不同的
select*方法以程序化的方式实现相同的效果。一个没有在显示区域中的网格单元,可能使用MakeCellVisible(row, col)方法来将它移到显示区域上。
5、网格控件的强大性和灵活性来源于可以为每个单元格创建自定义的描绘器和编辑器这一能力。描绘器用于控件单元格中的信息显示。默认的描绘器只是一个简单的字符串,但是还有用于布尔值、整数和浮点数的预先定义好(预定义)的描绘器。你可以通过子类化
wx.Grid.PyGridCellRenderer创建你自己的描绘器并覆盖它的绘制方法。
6、默认情况下,网格允许就地编辑数据。你可以改变这个属性(针对单元格,或行或列,或整个网格)。当编辑时,编辑器对象控制显示给用户的东西。默认的编辑器是一个用以修改字符串的普通的文本编辑器控件。其它还有用于布尔值、整数和浮点数的预定义的编辑器。你可以通过子类化wx.grid.GridCellEditor并覆盖它的几个方法来创建自己的自定义的编辑器。
7、网格控件有许多你能捕获的不同的事件,分别包括单元格中的鼠标敲击和标签中的鼠标敲击事件,以及通过改变一个单元格的尺寸而触发的事件。另外,你能够以编程的方式在网格中移动光标。
WxPythonInAction/ChapterFourteen (2009-12-25 07:09:11由localhost编辑)
? ? ? ? 只读网页 信息 附件 ?
?
Page.execute = 0.203s
豆瓣赞助
?
getACL = 0.015s
?
init = 0.001s
?
load_multi_cfg = 0.000s
?
run = 0.354s
?
send_page = 0.345s
?
send_page_content = 0.205s
?
total = 0.355s