46-wxpython 4 使用 grid 展示表格

摘要:
在OSX系统importwximportwx中使用控件样式显示样式的示例。网格类网格框架:def__init__:wx.Frame.__init__#CreateawxGridobjectgrid=wx.grid.grid#然后调用CreateGrid设置grid#grid的尺寸。CreateGrid#我们可以在ixelsgrid中设置单个行和列的大小。SetRowSizegrid.SetColSize#和setgridcellcontentasastringsgrid.SetCellValue#我们可以指定某些单元格是只读的。SetCellValuegrid。SetReadOnly(0,3)#颜色可以为ridcellcontentsgrid指定。SetCellValuegrid.SetCellTextColourgrid.SetCellBackgroundColour#我们可以指定某些单元格,并存储数字#值而不是字符串。这里将网格列5#设置为显示的浮点值宽度为6#,精度为网格SetColFormatFloatfrid.SetCellValueself。Show()if__name__=='__main__':app=wx.Appframe=GridFrameapp。MainLoop()演示是从官方文档中提取的一个很好的英语使用者。看看代码上的注释。这里,我们只是提出了一些关键方法。CreateGrid方法可用于初始化具有固定行数和列数的网格接口。去细胞Changed://todowriteeventresponsecode12在文档中,有一个解释,您可以使用setTable()来设置wx。grid GridTableBase的自定义子类。只能使用setCellValue方法循环在网格上放置数据。你知道如何在wxPython 4中使用它吗。
2018年01月10日 16:01:14 迦蓝叶 阅读数:3399
 
 版权声明:本文为博主原创文章,如需转载请在文章中注明“转载”并在文章开头附上本博客链接。 https://blog.csdn.net/soslinken/article/details/79024938

文章导航

wx.grid.Grid

Grid这个控件主要是用于显示和编辑表格数据。 
这里写图片描述 
控件样式在OS X 系统下显示样式

使用样例
import wx
import wx.grid

class GridFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent)

        # Create a wxGrid object
        grid = wx.grid.Grid(self, -1)

        # Then we call CreateGrid to set the dimensions of the grid
        # (100 rows and 10 columns in this example)
        grid.CreateGrid(100, 10)

        # We can set the sizes of individual rows and columns
        # in pixels
        grid.SetRowSize(0, 60)
        grid.SetColSize(0, 120)

        # And set grid cell contents as strings
        grid.SetCellValue(0, 0, 'wxGrid is good')

        # We can specify that some cells are read.only
        grid.SetCellValue(0, 3, 'This is read.only')
        grid.SetReadOnly(0, 3)

        # Colours can be specified for grid cell contents
        grid.SetCellValue(3, 3, 'green on grey')
        grid.SetCellTextColour(3, 3, wx.GREEN)
        grid.SetCellBackgroundColour(3, 3, wx.LIGHT_GREY)

        # We can specify the some cells will store numeric
        # values rather than strings. Here we set grid column 5
        # to hold floating point values displayed with width of 6
        # and precision of 2
        grid.SetColFormatFloat(5, 6, 2)
        grid.SetCellValue(0, 6, '3.1415')

        self.Show()


if __name__ == '__main__':

    app = wx.App(0)
    frame = GridFrame(None)
    app.MainLoop()

  

这个demo 是从官方文档中摘取的 
英语好的亲们 ,直接看代码上的注释就好了,在此只把一些关键方法提出来说明一下。

CreateGrid 方法

可以使用该方法初始化一个固定行数、列数的Grid界面。行列数创建后仍可以使用方法增加行列。

 grid.CreateGrid(100, 10)
  • 1

SetCellValue 方法

可以使用SetCellValue 将指定行列的单元格内的值进行设置。

grid.SetCellValue(0, 0, 'wxGrid is good')
  • 1

SetRowLabelValue 、 SetColLabelValue

可以用于改变行标签、列标签。样例界面中,行标签 1、2、3等, 列标签A、B、C等。 
SetRowLabelValue第一个参数代表的是当前第几行 
SetColLabelValue第一个参数代表的是当前第几列

grid.SetRowLabelValue(0,"1") //第一行标签 1
grid.SetColLabelValue(0,"A") //第一列标签 A
  • 1
  • 2

以上几个方法就可以做一个简单的数据展示grid了!

事件

关于grid有几个关键的事件说明一下

事件说明
EVT_GRID_CELL_CHANGING单元格内数据发生变化中
EVT_GRID_CELL_CHANGED单元格内数据发生变化后
EVT_GRID_CELL_LEFT_CLICK左键单击单元格
EVT_GRID_CELL_LEFT_DCLICK左键双击单元格
EVT_GRID_CELL_RIGHT_CLICK右键单击单元格
EVT_GRID_CELL_RIGHT_DCLICK右键双击单元格
EVT_GRID_SELECT_CELL选中单元格事件

绑定事件代码

self.Bind(wx.EVT_GRID_CELL_CHANGED,self.cellChanged,self.grid)
  • 1

第一个参数:事件 
第二个参数:响应方法 
第三个参数:事件对象

响应方法需要特别提示一下: 
方法必须有一个event 参数 不然无法响应。

def cellChanged(self , event) :
    //todo write event response code 
  • 1
  • 2
疑问

在文档中,有个说明,就是在大型数据展示的时候,可以使用setTable(),方法设置一个wx.grid.GridTableBase的自定义子类。这样就可以做到数据与界面逻辑分离。

但是我写了一个GridTableBase的子类,setTable后并没有什么反应。不知道是怎么回事。只能是使用setCellValue 方法 循环将数据放置在grid上。

有大牛知道这个东西在 wxPython 4 中怎么使用吗。可以给小弟一个demo参考一下吗?

免责声明:文章转载自《46-wxpython 4 使用 grid 展示表格》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Xamarin与Visual stuido2015离线安装包分享命令执行漏洞下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python3 tkinter 界面布局(转自https://blog.csdn.net/junjun5156/article/details/72510927)

所谓布局,就是指控制窗体容器中各个控件(组件)的位置关系。tkinter 共有三种几何布局管理器,分别是:pack布局,grid布局,place布局。 pack布局 使用 pack布局,将向容器中添加组件,第一个添加的组件在最上方,然后是依次向下添加。 1 from tkinter import * 2 3 root =Tk() 4 5 #创建三...

在Excel中输入特殊字符

  使用标准的计算机键盘你可以输入大约94种不同的字符,包括字母、数字和其它一些功能符号。但是我们在实际应用中会使用很多其它的字符,这些字符都不能通过标准的US键盘直接输入,例如标准字体Arial中就有大约200种不同的字符可以使用,包括英镑符号£,欧元符号€,版权符号©等。本文描述了如何在Excel中输入这些特殊字符。 使用键盘输入字符   如果你了解每...

C#生成pdf -- iText7 设置自定义字体和表格

itextsharp已经不再更新,由iText 7来替代 安装 nuget 安装 itext7 注册自定义字体 下载字体文件 .ttc或.ttf到项目目录,设置更新则拷贝到输出目录,这样构建的时候会把字体文件拷贝过去 windows系统自带黑体, 可以直接复制到项目目录, 其路径是 C:WindowsFontssimhei.ttf 因为字体注册只需要一...

修改easyui默认datagrid的表格内字体大小,样式

如果项目中全局都要修改成某个样式, 找到easyui.css,修改easyui datagrid的表格字体样式,font-size是字体大小。 .datagrid-cell, .datagrid-cell-group, .datagrid-header-rownumber, .datagrid-cell-rownumber {margin:0;paddi...

实验3- 熟悉常用的 HBase 操作

石家庄铁道大学信息科学与技术学院 实验报告 2018年----2019年第一学期 题目:熟悉常用的 HBase 操作 课程名称:大型数据库应用技术 班级:信1605-2班 姓名: XX学号: XXXXXXXX 指导教师: XXX 一、实验内容与完成情况:(实验具体步骤和实验截图说明) 实验...

鼠标悬停显示图片

在 web 端我们查看一些数据时,为了方便用户理解数据的计算方法,会在鼠标指向格子的时候出现一些提示,鼠标移开的时候提示就不显示了,再比如说,鼠标指向页面按钮,出现按钮功能的提示,这样的效果在润乾中可以轻松实现,也有相应的文档介绍 鼠标悬停出现提示信息怎么做 。 除了上面说的那种静态信息外,在润乾报表中也可以实现鼠标指向显示对应的动态数据,还可以实现鼠标...