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:用于显示数据 ...
随机推荐
- HDU 2795.Billboard-完全版线段树(区间求最值的位置、区间染色、贴海报)
HDU2795.Billboard 这个题的意思就是在一块h*w的板子上贴公告,公告的规格为1*wi ,张贴的时候尽量往上,同一高度尽量靠左,求第n个公告贴的位置所在的行数,如果没有合适的位置贴则输出 ...
- (3)PHP环境搭建和使用
一.php开发环境 php开发的环境组件一般需要 apache(iis)+mysql+php 可以自己搭建环境或者用别人把这几项集成好的软件,自己搭建的环境配置起来麻烦但可以选择任意版本,集成的软件安 ...
- 洛谷 P1048 采药【裸01背包】
题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:" ...
- Web开发之编码与解码、签名、加密与解密
在Web开发中,编码与解码.签名.加密与解密是非常常见的问题.本文不会介绍具体实例,而是介绍这些的原理.用途与区别.一.编码与解码 在Web开发中,需要通过URL的query参数来传递数 ...
- C++模拟链表
C++模拟链表 简易模拟链表,工厂设计模式.. 注意:请不要在操作时产生环状链表,会造成输出链表时陷入无限循环. #include <iostream> #include <stri ...
- Xamarin XAML语言教程构建进度条ProgressBar
Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度 ...
- Flash3D学习计划(二)——理解世界,取景,投影变换,并理解投影坐标系
各种坐标系都是有用的,因为某些信息只能在特定场景中才有意义. 一. 世界坐标系 世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架.这就意味着,能够用世界坐标系描述其他坐标系的位置, ...
- pyttsx的中文语音识别问题及探究之路
最近在学习pyttsx时,发现中文阅读一直都识别错误,从发音来看应该是字符编码问题,但搜索之后并未发现解决方案.自己一路摸索解决,虽说最终的原因非常可笑,大牛们可能也是一眼就能洞穿,但也值得记录一下. ...
- 无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题
重装了下系统(Windows 7),发现先前装的一些软件大部分不能正确启动,更为奇怪的是,即使我重装了该软件,打开的软件界面的时候,报如下错误:“无法启动此程序,因为计算机中丢失 MSVCP120.d ...
- 待签名参数按照字段名的ascii码从小到大排序
public static String getSign(Map<String, String> params) { Map<String, String> sortMap = ...