1. 介绍

wxGrid控件时wxWidgets界面库中内置的网格控件。

通经常使用来显示表格数据。该控件拥有强大的功能。开发人员可依据自己的需求对其进行定制。

2. 经常使用API

     构造函数:wxGrid ()wxGrid (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxWANTS_CHARS, const wxString &name=wxGridNameStr)       创建表格的API:// 创建一个空的表格bool Create (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxWANTS_CHARS, const wxString &name=wxGridNameStr)// 创建一个指定行,制定列的表格bool CreateGrid (int numRows, int numCols, wxGridSelectionModes selmode=wxGridSelectCells)关于大小的API:                 // 获取列标签的高度int GetColLabelSize () const// 获取指定列的宽度int GetColSize (int col) const// 获取默认的列标签宽度int GetDefaultColLabelSize () const// 获取默认的列宽int GetDefaultColSize () const// 获取默认的行标签宽度int GetDefaultRowLabelSize () const// 获取默认的行高度int GetDefaultRowSize () const// 获取行标签的宽度int GetRowLabelSize () const// 获取指定行的高度int GetRowSize (int row) const// 设置指定列的宽度void SetColSize (int col, int width)// 设置列标签的高度void SetColLabelSize (int height)// 设置默认的列宽度void SetDefaultColSize (int width, bool resizeExistingCols=false)// 设置默认的行高度void SetDefaultRowSize (int height, bool resizeExistingRows=false)// 设置行标签的宽度void SetRowLabelSize (int width)// 设置指定行的高度void SetRowSize (int row, int height)// 获取列的大小信息wxGridSizesInfo GetColSizes () const// 获取行的大小信息wxGridSizesInfo GetRowSizes () const// 设置列的大小信息void SetColSizes (const wxGridSizesInfo &sizeInfo)// 设置行的大小信息void SetRowSizes (const wxGridSizesInfo &sizeInfo)// 设置指定单元格的大小void SetCellSize (int row, int col, int num_rows, int num_cols)// 获取指定单元格的大小CellSpan GetCellSize (int row, int col, int *num_rows, int *num_cols) const// 获取单元格的大小wxSize     GetCellSize (const wxGridCellCoords &coords)// 推断制定列大小是否可变bool CanDragColSize (int col) const// 推断表格大小是否可变bool CanDragGridSize () const// 推断制定行大小是否可变bool CanDragRowSize (int row) const// 使指定列大小不能改变void DisableColResize (int col)// 使指定行大小不能改变void DisableRowResize (int row)// 使列大小不能改变void DisableDragColSize ()// 使表格大小不能改变void DisableDragGridSize ()// 使行大小不能改变void DisableDragRowSize ()void EnableDragColSize (bool enable=true)// 设置表格大小是否可变void EnableDragGridSize (bool enable=true)// 设置行大小是否可变void EnableDragRowSize (bool enable=true)// 获取列数int GetNumberCols () const// 获取行数int GetNumberRows () const关于边框的API:// 获取指定列的画笔virtual wxPen GetColGridLinePen (int col)// 获取默认的表格边框的画笔virtual wxPen GetDefaultGridLinePen ()// 获取表格边框的颜色wxColour GetGridLineColour () const// 获取行边框的画笔virtual wxPen GetRowGridLinePen (int row)// 表格是否有边框bool GridLinesEnabled () const// 设置表格边框的颜色void SetGridLineColour (const wxColour &colour)关于表头的API:    // 获取指定列标签(表头)的对其方式void GetColLabelAlignment (int *horiz, int *vert) const     // 获取指定列标签(表头)的文件的方向int GetColLabelTextOrientation () const// 获取制定列标签的内容wxString GetColLabelValue (int col) const     // 获取标签(表头)的背景颜色wxColour GetLabelBackgroundColour () const     // 获取标签的字体wxFont GetLabelFont () const     // 获取标签的文字颜色wxColour GetLabelTextColour () const     // 获取行标签的对齐方式void GetRowLabelAlignment (int *horiz, int *vert) const// 获取行标签的内容wxString GetRowLabelValue (int row) const// 隐藏标签void HideColLabels ()     // 隐藏行标签void HideRowLabels ()     // 设置列标签的对齐方式void SetColLabelAlignment (int horiz, int vert)// 设置列标签的文字方向void SetColLabelTextOrientation (int textOrientation)// 设置列标签的内容void SetColLabelValue (int col, const wxString &value)// 设置标签的背景颜色void SetLabelBackgroundColour (const wxColour &colour)// 设置标签的字体void SetLabelFont (const wxFont &font)// 设置标签的文字颜色void SetLabelTextColour (const wxColour &colour)// 设置行标签的对齐方式void SetRowLabelAlignment (int horiz, int vert)// 设置行标签的内容void SetRowLabelValue (int row, const wxString &value)关于表结构的API:// 追加列bool AppendCols (int numCols=1, bool updateLabels=true)// 追加行bool AppendRows (int numRows=1, bool updateLabels=true)// 删除指定列bool DeleteCols (int pos=0, int numCols=1, bool updateLabels=true)     // 删除指定行bool DeleteRows (int pos=0, int numRows=1, bool updateLabels=true)// 插入新列bool InsertCols (int pos=0, int numCols=1, bool updateLabels=true)// 插入新行bool InsertRows (int pos=0, int numRows=1, bool updateLabels=true)关于选中的API:// 清楚选中状态void ClearSelection ()// 获取选中的单元格wxGridCellCoordsArray GetSelectedCells () const// 获取选中的列wxArrayInt GetSelectedCols () const// 获取选中的行wxArrayInt     GetSelectedRows () const// 获取选中区域的背景颜色wxColour GetSelectionBackground () const// 获取选中区域的前景色wxColour GetSelectionForeground () const// 获取选中模式wxGridSelectionModes GetSelectionMode () const// 推断制定单元格是否被选中bool IsInSelection (int row, int col) const// 推断是否有选中的单元格bool IsSelection () const// 选择整个表格void SelectAll ()// 选择指定的区域void SelectBlock (int topRow, int leftCol, int bottomRow, int rightCol, bool addToSelected=false)// 选择指定的区域void SelectBlock (const wxGridCellCoords &topLeft, const wxGridCellCoords &bottomRight, bool addToSelected=false)// 选择制定的列void SelectCol (int col, bool addToSelected=false)// 选择指定的行void SelectRow (int row, bool addToSelected=false)// 设置选中后的背景颜色void SetSelectionBackground (const wxColour &c)// 设置选中后的前景色void SetSelectionForeground (const wxColour &c)// 设置选中模式void SetSelectionMode (wxGridSelectionModes selmode)关于格式的API:// 获取制定单元格的对其方式void GetCellAlignment (int row, int col, int *horiz, int *vert) const// 获取制定单元格的背景颜色wxColour GetCellBackgroundColour (int row, int col) const// 获取制定单元格的字体wxFont GetCellFont (int row, int col) const// 获取制定单元格的文字颜色wxColour GetCellTextColour (int row, int col) const// 获取指定单元格默认的对齐方式void GetDefaultCellAlignment (int *horiz, int *vert) const     // 获取单元格默认的背景色wxColour GetDefaultCellBackgroundColour () const     // 获取单元格默认的字体wxFont GetDefaultCellFont () const// 获取单元格默认的字体颜色wxColour GetDefaultCellTextColour () const// 设置指定单元格的对齐方式void SetCellAlignment (int row, int col, int horiz, int vert)// 设置指定单元格的对齐方式void SetCellAlignment (int align, int row, int col)// 设置单元格的背景颜色void SetCellBackgroundColour (int row, int col, const wxColour &colour)// 设置单元格的字体void SetCellFont (int row, int col, const wxFont &font)// 设置单元格的字体颜色void SetCellTextColour (int row, int col, const wxColour &colour)// 设置单元格的字体颜色void SetCellTextColour (const wxColour &val, int row, int col)// 设置单元格字体颜色void SetCellTextColour (const wxColour &colour)// 设置单元格默认的对齐方式void SetDefaultCellAlignment (int horiz, int vert)// 设置单元格默认的背景颜色void SetDefaultCellBackgroundColour (const wxColour &colour)// 设置单元格默认的字体void SetDefaultCellFont (const wxFont &font)// 设置单元格默认的字体颜色void SetDefaultCellTextColour (const wxColour &colour)// 使单元格处于仅仅读状态void DisableCellEditControl ()// 设置单元格的编辑状态(可编辑或不可编辑)void EnableCellEditControl (bool enable=true)// 设置表格的编辑状态(可编辑或步可编辑)void EnableEditing (bool edit)// 获取指定单元格的值wxString GetCellValue (int row, int col) const// 获取制定单元格的值wxString GetCellValue (const wxGridCellCoords &coords) const// 当前单元格是否为仅仅读bool IsCurrentCellReadOnly () const// 表格是否为可编辑的bool IsEditable () const// 指定单元格是否为仅仅读bool IsReadOnly (int row, int col) const// 设置指定单元格的值void SetCellValue (int row, int col, const wxString &s)// 设置制定单元格的值void SetCellValue (const wxGridCellCoords &coords, const wxString &s)// 设置制定单元格的值void SetCellValue (const wxString &val, int row, int col)// 设置制定单元格的仅仅读属性void SetReadOnly (int row, int col, bool isReadOnly=true)// 单元格大小自适应void AutoSize ()// 指定列标签大小自适应void AutoSizeColLabelSize (int col)// 指定列大小自适应void AutoSizeColumn (int col, bool setAsMin=true)// 设置列的大小自适应属性void AutoSizeColumns (bool setAsMin=true)// 指定行大小自适应void AutoSizeRow (int row, bool setAsMin=true)// 指定行标签大小自适应void AutoSizeRowLabelSize (int col)// 设置行的大小自适应属性void AutoSizeRows (bool setAsMin=true)// 推断指定列是否是显示的bool IsColShown (int col) const         // 推断制定行是否是显示状态bool IsRowShown (int row) const        // 设置制定列的最小宽度void SetColMinimalWidth (int col, int width)        // 隐藏制定列void HideCol (int col)// 显示指定列void ShowCol (int col)        // 设置行的最小高度void SetRowMinimalHeight (int row, int height)        // 隐藏指定行  void HideRow (int col)// 显示指定行void ShowRow (int col)        // 推断单元格大小是否可变bool CanDragCell () const        // 设置单元格大小是否可变void EnableDragCell (bool enable=true)    关于属性的API:// 刷新属性void RefreshAttr (int row, int col)// 设置指定列的属性void SetColAttr (int col, wxGridCellAttr *attr)// 设置表格外边距void SetMargins (int extraWidth, int extraHeight)// 设置指定行属性void SetRowAttr (int row, wxGridCellAttr *attr)// 获取单元格属性wxGridCellAttr * GetOrCreateCellAttr (int row, int col) const// 获取列数int GetNumberCols () const// 获取行数int GetNumberRows () const关于排序的API:// 推断排序规则是否为ASCII码bool IsSortOrderAscending () const// 设置排序列void SetSortingColumn (int col, bool ascending=true)     // 设置列的排序规则void SetColumnsOrder (const wxArrayInt &order)// 获取列的最小宽度int GetColMinimalWidth (int col) const// 获取行的最小高度int GetRowMinimalHeight (int col) const选中模式:wxGridSelectCellswxGridSelectRowswxGridSelectColumnswxGridSelectRowsOrColumns对齐方式:wxALIGN_LEFT     wxALIGN_TOP     wxALIGN_RIGHT     wxALIGN_BOTTOM     wxALIGN_CENTER_VERTICAL     wxALIGN_CENTRE_VERTICAL     wxALIGN_CENTER     wxALIGN_CENTRE   

具体解释的API介绍见:http://docs.wxwidgets.org/trunk/classwx_grid.html

3. 演示样例代码
    在此我们实现一个4*5的表格,其核心代码例如以下所看到的:

void CreateTable(wxWindow* parent)
{char* attr[] = {"姓名", "年龄", "性别", "身高", "体重"};wxGrid *grid = new wxGrid(parent, wxID_ANY, wxPoint(0, 0), wxSize(580, 310));// 创建一个8×5的表格grid->CreateGrid(8, 5);// 设置默认的行高度grid->SetDefaultRowSize(35);// 设置默认的列宽度grid->SetDefaultColSize(100);// 设置表头的背景色grid->SetLabelBackgroundColour(0x228B22);// 设置表头的颜色grid->SetLabelTextColour(0xFFFFFF);// 设置单元格中数据的对其方式grid->SetDefaultCellAlignment(wxALIGN_CENTER, wxALIGN_CENTRE);// 设置表头for (int i = 0; i < 5; i++){grid->SetColLabelValue(i, wxString::FromUTF8(attr[i]));}// 使表格全然显示parent->Fit();
}     

wxWidgets之wxGrid控件相关推荐

  1. wxWidgets:网格控件 wxWidgets 示例

    wxWidgets:网格控件 wxWidgets 示例 wxWidgets:网格控件 wxWidgets 示例 griddemo.h griddemo.cpp wxWidgets:网格控件 wxWid ...

  2. wxWidgets:使用控件

    wxWidgets:使用控件 wxWidgets:使用控件 介绍 添加文本控件 添加菜单栏 添加状态栏 使用的类 概括 wxWidgets:使用控件 介绍 在上一节中,我们查看了 wxWidgets ...

  3. wxWidgets:添加控件

    wxWidgets:添加控件 wxWidgets:添加控件 步骤 1 - TextFrame 定义 第 2 步 - TextFrame 实现 wxWidgets:添加控件 步骤 1 - TextFra ...

  4. wxWidgets 示例演示 wxWizard 控件

    wxWidgets 示例演示 wxWizard 控件 wxWidgets 示例演示 wxWizard 控件 wxWidgets 示例演示 wxWizard 控件 #include "wx/w ...

  5. wxwidgets mysql_关于wxWidgets控件出现乱码

    这两天在用wxWidgets做一个小程序,突然遇到了一个控件显示出现乱码的问题. 首先声明:我用的编译器是Visual Studio 2005,wxWidgets版本是2.8.12,下面的解决方法不一 ...

  6. wxWidgets教程(14)——书签控件wxBookCtrl

    一.wxBookCtrlBase介绍 这是个抽象类,有七个子类,他们的成员函数基本差不多,分别: wxAuiNotebook wxNotebook wxChoicebook wxListbook wx ...

  7. wxpython富文本_Python实例讲解 -- wxpython 基本的控件 (文本)

    使用基本的控件工作 wxPython 工具包提供了多种不同的窗口部件,包括了本章所提到的基本控件.我们涉及静态文本.可编辑的文本.按钮.微调.滑块.复选框.单选按钮.选择器.列表框.组合框和标尺.对于 ...

  8. python实例讲解wxpythonhyh123_Python实例讲解 -- wxpython 基本的控件 (按钮)

    使用按钮工作 在wxPython 中有很多不同类型的按钮.这一节,我们将讨论文本按钮.位图按钮.开关按钮(toggle buttons )和通用(generic )按钮. 如何生成一个按钮? 在第一部 ...

  9. wxpython控件绑定事件_wxPython事件处理

    与以顺序方式执行的控制台模式应用程序不同,基于GUI的应用程序是事件驱动的.函数或方法响应用户的操作来执行,例如单击按钮,从集合或鼠标单击等中选择一个项目,称为事件. 有关在应用程序运行时发生的事件的 ...

最新文章

  1. python 定时任务
  2. R语言应用实战-OLS模型算法原理及应用示例
  3. wxPython wx.ArtProvider 可直接调用的图标
  4. 如何融入到更积极的环境,促进技术提升
  5. λ演算的语法和语义_λ和副作用
  6. 声明对象_静态变量(使用同一个类声明的对象可以共享一个值)
  7. graphics | 基础绘图系统(三)——添加文本标注、坐标轴线和图例
  8. 做前端的你觉得很吃力?
  9. 30秒的PHP代码片段(1)数组 - Array
  10. 启动go服务_使用Go构建TCP并发服务器,这种方式原来这么简单
  11. Golang Http Server源码阅读
  12. 多种方法去除按钮以及链接点击时虚线
  13. 麻雀虽小,五脏俱全 - Java工具类库 - Hutool
  14. javaweb做什么能赚钱_做一个完整的Java Web项目需要掌握的技能
  15. 苹果设备上的无损音乐alac
  16. this.$watch(),this.$set(),this.$nextTick()={})
  17. react-native 性能优化,处理卡顿
  18. 【2017秋季校园招聘笔经面经专题汇总】
  19. Sperax月报 | 2021年9月
  20. 面试:你看见一分硬币捡不捡?计算秒薪的回答亮了,网友:我都要

热门文章

  1. java高校职工工资管理论文_毕业设计论文java大学工资管理系统
  2. iOS核心动画之CALayer(1)
  3. uva 11997 K Smallest Sums 优先队列处理多路归并问题
  4. 创建表头固定,表体可滚动的GridView(转)
  5. FormView在什么情况下自动生成模板项?
  6. JQuery实现页面跳转
  7. java面向对象:异常处理 —(18)
  8. bzoj 4736: 温暖会指引我们前行 (LCT 维护最大生成树)
  9. 团队项目第一篇——NABCD
  10. 关于Unity中NGUI的背包实现之Scrollview(基于Camera)