wxWidgets之wxGrid控件
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
- 选中模式:
- wxGridSelectCells
- wxGridSelectRows
- wxGridSelectColumns
- wxGridSelectRowsOrColumns
- 对齐方式:
- 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控件的更多相关文章
- wxpython 基本的控件 (文本)
wxPython 工具包提供了多种不同的窗口部件,包括了本章所提到的基本控件.我们涉及静态文本.可编辑的文本.按钮.微调.滑块.复选框.单选按钮.选择器.列表框.组合框和标尺.对于每种窗口部件,我们将 ...
- wxpython 基本的控件 (按钮)
使用按钮工作 在wxPython 中有很多不同类型的按钮.这一节,我们将讨论文本按钮.位图按钮.开关按钮(toggle buttons )和通用(generic )按钮. 如何生成一个按钮? 在第一部 ...
- wxPython中基本控件学习
wxPython工具包提供了多种不同的窗口部件,包括了本章所提到的基本控件.我们涉及静态文本.可编辑的文本.按钮.微调.滑块.复选框.单选按钮.选择器.列表框.组合框和标尺.对于每种窗口部件,我们将提 ...
- Python实例讲解 -- wxpython 基本的控件 (按钮)
使用按钮工作 在wxPython 中有很多不同类型的按钮.这一节,我们将讨论文本按钮.位图按钮.开关按钮(toggle buttons )和通用(generic )按钮. 如何生成一个按钮? 在第一部 ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- HTML5 progress和meter控件
在HTML5中,新增了progress和meter控件.progress控件为进度条控件,可表示任务的进度,如Windows系统中软件的安装.文件的复制等场景的进度.meter控件为计量条控件,表示某 ...
- 百度 flash html5自切换 多文件异步上传控件webuploader基本用法
双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...
- JS与APP原生控件交互
"热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
随机推荐
- 利用MAP动态创建C++类对象
MFC的CRuntimeClass利用链表实现了C++类的动态创建.但是如果项目中对动态创建的要求比较低,我们完全可以利用map实现简单的动态创建. http://blog.csdn.net/yeji ...
- Sharepoint 查阅项字段和计算值字段的定义
查阅项字段定义 <Field Type="Lookup" DisplayName="test2" Required="FALSE" E ...
- Java StringBuffer与StringBuider
String 的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低,而且耗费大量内存空间. StringBuffer类和String类一样,也用来表示字符串,但是Strin ...
- 分享 | 自定义属于自己的U盘图标
文章目录 步骤 注意 想不想也可以自定义自己的U盘图标?其实,这并不难 步骤 在网上下载ICO格式的图标,也可以将自己喜欢的图片转换成ICO格式,并将图片命名为demo.ico: 点击这里打开记事本, ...
- 博客 | 基于Travis CI实现Hexo在Github和Coding的同步自动化部署
文章目录 完成Hexo主题安装和配置 基于Travis CI实现同步部署 参考内容 相关链接 待补充 完成Hexo主题安装和配置 如果您还没有安装Hexo环境,请参考Hexo文档安装,也给出这样两篇博 ...
- mysql系列-安装及服务启动
一.window下的安装 详细见官网 https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html 以 MySQL 5.1 免安装 ...
- 打包工具 使用帮助 inno setup
http://wenku.baidu.com/link?url=0VRJ8n9am1KgVAAqwz-AU1htXamo7Vh0d4QIdGG6_LcTrZBdb7lRim8Jx6M8KaLJDQm1 ...
- 解决413 Request Entity Too Large
修改nginx配置 这是最简单的一个做法,着报错原因是nginx不允许上传配置过大的文件,那么件把nginx的上传大小配置调高就好. 1.打开nginx主配置文件nginx.conf,一般在/u ...
- SimpleDateFormat关于时间类的一些常用处理
项目中经常会出现对时间类的一些处理,记录一下: 实例一:/** * 获取当前时间是星期几? * * @param args */ public static void main(String[] ar ...
- JSONUtil.bean2Json()报Property 'key' of class has no read method. SKIPPED的问题处理
错误警告信息描述: net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:) Property 'handler' of class ...