1. 介绍

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

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

2. 经常使用API     

  1. 构造函数:
  2. wxGrid ()
  3. wxGrid (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxWANTS_CHARS, const wxString &name=wxGridNameStr)
  4.  
  5. 创建表格的API
  6. // 创建一个空的表格
  7. bool Create (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxWANTS_CHARS, const wxString &name=wxGridNameStr)
  8. // 创建一个指定行,制定列的表格
  9. bool CreateGrid (int numRows, int numCols, wxGridSelectionModes selmode=wxGridSelectCells)
  10.  
  11. 关于大小的API
  12. // 获取列标签的高度
  13. int GetColLabelSize () const
  14. // 获取指定列的宽度
  15. int GetColSize (int col) const
  16. // 获取默认的列标签宽度
  17. int GetDefaultColLabelSize () const
  18. // 获取默认的列宽
  19. int GetDefaultColSize () const
  20. // 获取默认的行标签宽度
  21. int GetDefaultRowLabelSize () const
  22. // 获取默认的行高度
  23. int GetDefaultRowSize () const
  24. // 获取行标签的宽度
  25. int GetRowLabelSize () const
  26. // 获取指定行的高度
  27. int GetRowSize (int row) const
  28. // 设置指定列的宽度
  29. void SetColSize (int col, int width)
  30. // 设置列标签的高度
  31. void SetColLabelSize (int height)
  32. // 设置默认的列宽度
  33. void SetDefaultColSize (int width, bool resizeExistingCols=false)
  34. // 设置默认的行高度
  35. void SetDefaultRowSize (int height, bool resizeExistingRows=false)
  36. // 设置行标签的宽度
  37. void SetRowLabelSize (int width)
  38. // 设置指定行的高度
  39. void SetRowSize (int row, int height)
  40. // 获取列的大小信息
  41. wxGridSizesInfo GetColSizes () const
  42. // 获取行的大小信息
  43. wxGridSizesInfo GetRowSizes () const
  44. // 设置列的大小信息
  45. void SetColSizes (const wxGridSizesInfo &sizeInfo)
  46. // 设置行的大小信息
  47. void SetRowSizes (const wxGridSizesInfo &sizeInfo)
  48. // 设置指定单元格的大小
  49. void SetCellSize (int row, int col, int num_rows, int num_cols)
  50. // 获取指定单元格的大小
  51. CellSpan GetCellSize (int row, int col, int *num_rows, int *num_cols) const
  52. // 获取单元格的大小
  53. wxSize GetCellSize (const wxGridCellCoords &coords)
  54. // 推断制定列大小是否可变
  55. bool CanDragColSize (int col) const
  56. // 推断表格大小是否可变
  57. bool CanDragGridSize () const
  58. // 推断制定行大小是否可变
  59. bool CanDragRowSize (int row) const
  60. // 使指定列大小不能改变
  61. void DisableColResize (int col)
  62. // 使指定行大小不能改变
  63. void DisableRowResize (int row)
  64. // 使列大小不能改变
  65. void DisableDragColSize ()
  66. // 使表格大小不能改变
  67. void DisableDragGridSize ()
  68. // 使行大小不能改变
  69. void DisableDragRowSize ()
  70. void EnableDragColSize (bool enable=true)
  71. // 设置表格大小是否可变
  72. void EnableDragGridSize (bool enable=true)
  73. // 设置行大小是否可变
  74. void EnableDragRowSize (bool enable=true)
  75. // 获取列数
  76. int GetNumberCols () const
  77. // 获取行数
  78. int GetNumberRows () const
  79.  
  80. 关于边框的API
  81. // 获取指定列的画笔
  82. virtual wxPen GetColGridLinePen (int col)
  83. // 获取默认的表格边框的画笔
  84. virtual wxPen GetDefaultGridLinePen ()
  85. // 获取表格边框的颜色
  86. wxColour GetGridLineColour () const
  87. // 获取行边框的画笔
  88. virtual wxPen GetRowGridLinePen (int row)
  89. // 表格是否有边框
  90. bool GridLinesEnabled () const
  91. // 设置表格边框的颜色
  92. void SetGridLineColour (const wxColour &colour)
  93.  
  94. 关于表头的API
  95. // 获取指定列标签(表头)的对其方式
  96. void GetColLabelAlignment (int *horiz, int *vert) const
  97. // 获取指定列标签(表头)的文件的方向
  98. int GetColLabelTextOrientation () const
  99. // 获取制定列标签的内容
  100. wxString GetColLabelValue (int col) const
  101. // 获取标签(表头)的背景颜色
  102. wxColour GetLabelBackgroundColour () const
  103. // 获取标签的字体
  104. wxFont GetLabelFont () const
  105. // 获取标签的文字颜色
  106. wxColour GetLabelTextColour () const
  107. // 获取行标签的对齐方式
  108. void GetRowLabelAlignment (int *horiz, int *vert) const
  109. // 获取行标签的内容
  110. wxString GetRowLabelValue (int row) const
  111. // 隐藏标签
  112. void HideColLabels ()
  113. // 隐藏行标签
  114. void HideRowLabels ()
  115. // 设置列标签的对齐方式
  116. void SetColLabelAlignment (int horiz, int vert)
  117. // 设置列标签的文字方向
  118. void SetColLabelTextOrientation (int textOrientation)
  119. // 设置列标签的内容
  120. void SetColLabelValue (int col, const wxString &value)
  121. // 设置标签的背景颜色
  122. void SetLabelBackgroundColour (const wxColour &colour)
  123. // 设置标签的字体
  124. void SetLabelFont (const wxFont &font)
  125. // 设置标签的文字颜色
  126. void SetLabelTextColour (const wxColour &colour)
  127. // 设置行标签的对齐方式
  128. void SetRowLabelAlignment (int horiz, int vert)
  129. // 设置行标签的内容
  130. void SetRowLabelValue (int row, const wxString &value)
  131.  
  132. 关于表结构的API
  133. // 追加列
  134. bool AppendCols (int numCols=1, bool updateLabels=true)
  135. // 追加行
  136. bool AppendRows (int numRows=1, bool updateLabels=true)
  137. // 删除指定列
  138. bool DeleteCols (int pos=0, int numCols=1, bool updateLabels=true)
  139. // 删除指定行
  140. bool DeleteRows (int pos=0, int numRows=1, bool updateLabels=true)
  141. // 插入新列
  142. bool InsertCols (int pos=0, int numCols=1, bool updateLabels=true)
  143. // 插入新行
  144. bool InsertRows (int pos=0, int numRows=1, bool updateLabels=true)
  145.  
  146. 关于选中的API
  147. // 清楚选中状态
  148. void ClearSelection ()
  149. // 获取选中的单元格
  150. wxGridCellCoordsArray GetSelectedCells () const
  151. // 获取选中的列
  152. wxArrayInt GetSelectedCols () const
  153. // 获取选中的行
  154. wxArrayInt GetSelectedRows () const
  155. // 获取选中区域的背景颜色
  156. wxColour GetSelectionBackground () const
  157. // 获取选中区域的前景色
  158. wxColour GetSelectionForeground () const
  159. // 获取选中模式
  160. wxGridSelectionModes GetSelectionMode () const
  161. // 推断制定单元格是否被选中
  162. bool IsInSelection (int row, int col) const
  163. // 推断是否有选中的单元格
  164. bool IsSelection () const
  165. // 选择整个表格
  166. void SelectAll ()
  167. // 选择指定的区域
  168. void SelectBlock (int topRow, int leftCol, int bottomRow, int rightCol, bool addToSelected=false)
  169. // 选择指定的区域
  170. void SelectBlock (const wxGridCellCoords &topLeft, const wxGridCellCoords &bottomRight, bool addToSelected=false)
  171. // 选择制定的列
  172. void SelectCol (int col, bool addToSelected=false)
  173. // 选择指定的行
  174. void SelectRow (int row, bool addToSelected=false)
  175. // 设置选中后的背景颜色
  176. void SetSelectionBackground (const wxColour &c)
  177. // 设置选中后的前景色
  178. void SetSelectionForeground (const wxColour &c)
  179. // 设置选中模式
  180. void SetSelectionMode (wxGridSelectionModes selmode)
  181.  
  182. 关于格式的API
  183. // 获取制定单元格的对其方式
  184. void GetCellAlignment (int row, int col, int *horiz, int *vert) const
  185. // 获取制定单元格的背景颜色
  186. wxColour GetCellBackgroundColour (int row, int col) const
  187. // 获取制定单元格的字体
  188. wxFont GetCellFont (int row, int col) const
  189. // 获取制定单元格的文字颜色
  190. wxColour GetCellTextColour (int row, int col) const
  191. // 获取指定单元格默认的对齐方式
  192. void GetDefaultCellAlignment (int *horiz, int *vert) const
  193. // 获取单元格默认的背景色
  194. wxColour GetDefaultCellBackgroundColour () const
  195. // 获取单元格默认的字体
  196. wxFont GetDefaultCellFont () const
  197. // 获取单元格默认的字体颜色
  198. wxColour GetDefaultCellTextColour () const
  199. // 设置指定单元格的对齐方式
  200. void SetCellAlignment (int row, int col, int horiz, int vert)
  201. // 设置指定单元格的对齐方式
  202. void SetCellAlignment (int align, int row, int col)
  203. // 设置单元格的背景颜色
  204. void SetCellBackgroundColour (int row, int col, const wxColour &colour)
  205. // 设置单元格的字体
  206. void SetCellFont (int row, int col, const wxFont &font)
  207. // 设置单元格的字体颜色
  208. void SetCellTextColour (int row, int col, const wxColour &colour)
  209. // 设置单元格的字体颜色
  210. void SetCellTextColour (const wxColour &val, int row, int col)
  211. // 设置单元格字体颜色
  212. void SetCellTextColour (const wxColour &colour)
  213. // 设置单元格默认的对齐方式
  214. void SetDefaultCellAlignment (int horiz, int vert)
  215. // 设置单元格默认的背景颜色
  216. void SetDefaultCellBackgroundColour (const wxColour &colour)
  217. // 设置单元格默认的字体
  218. void SetDefaultCellFont (const wxFont &font)
  219. // 设置单元格默认的字体颜色
  220. void SetDefaultCellTextColour (const wxColour &colour)
  221. // 使单元格处于仅仅读状态
  222. void DisableCellEditControl ()
  223. // 设置单元格的编辑状态(可编辑或不可编辑)
  224. void EnableCellEditControl (bool enable=true)
  225. // 设置表格的编辑状态(可编辑或步可编辑)
  226. void EnableEditing (bool edit)
  227. // 获取指定单元格的值
  228. wxString GetCellValue (int row, int col) const
  229. // 获取制定单元格的值
  230. wxString GetCellValue (const wxGridCellCoords &coords) const
  231. // 当前单元格是否为仅仅读
  232. bool IsCurrentCellReadOnly () const
  233. // 表格是否为可编辑的
  234. bool IsEditable () const
  235. // 指定单元格是否为仅仅读
  236. bool IsReadOnly (int row, int col) const
  237. // 设置指定单元格的值
  238. void SetCellValue (int row, int col, const wxString &s)
  239. // 设置制定单元格的值
  240. void SetCellValue (const wxGridCellCoords &coords, const wxString &s)
  241. // 设置制定单元格的值
  242. void SetCellValue (const wxString &val, int row, int col)
  243. // 设置制定单元格的仅仅读属性
  244. void SetReadOnly (int row, int col, bool isReadOnly=true)
  245. // 单元格大小自适应
  246. void AutoSize ()
  247. // 指定列标签大小自适应
  248. void AutoSizeColLabelSize (int col)
  249. // 指定列大小自适应
  250. void AutoSizeColumn (int col, bool setAsMin=true)
  251. // 设置列的大小自适应属性
  252. void AutoSizeColumns (bool setAsMin=true)
  253. // 指定行大小自适应
  254. void AutoSizeRow (int row, bool setAsMin=true)
  255. // 指定行标签大小自适应
  256. void AutoSizeRowLabelSize (int col)
  257. // 设置行的大小自适应属性
  258. void AutoSizeRows (bool setAsMin=true)
  259. // 推断指定列是否是显示的
  260. bool IsColShown (int col) const
  261. // 推断制定行是否是显示状态
  262. bool IsRowShown (int row) const
  263. // 设置制定列的最小宽度
  264. void SetColMinimalWidth (int col, int width)
  265. // 隐藏制定列
  266. void HideCol (int col)
  267. // 显示指定列
  268. void ShowCol (int col)
  269. // 设置行的最小高度
  270. void SetRowMinimalHeight (int row, int height)
  271. // 隐藏指定行
  272. void HideRow (int col)
  273. // 显示指定行
  274. void ShowRow (int col)
  275. // 推断单元格大小是否可变
  276. bool CanDragCell () const
  277. // 设置单元格大小是否可变
  278. void EnableDragCell (bool enable=true)
  279.  
  280. 关于属性的API
  281. // 刷新属性
  282. void RefreshAttr (int row, int col)
  283. // 设置指定列的属性
  284. void SetColAttr (int col, wxGridCellAttr *attr)
  285. // 设置表格外边距
  286. void SetMargins (int extraWidth, int extraHeight)
  287. // 设置指定行属性
  288. void SetRowAttr (int row, wxGridCellAttr *attr)
  289. // 获取单元格属性
  290. wxGridCellAttr * GetOrCreateCellAttr (int row, int col) const
  291. // 获取列数
  292. int GetNumberCols () const
  293. // 获取行数
  294. int GetNumberRows () const
  295.  
  296. 关于排序的API
  297. // 推断排序规则是否为ASCII码
  298. bool IsSortOrderAscending () const
  299. // 设置排序列
  300. void SetSortingColumn (int col, bool ascending=true)
  301. // 设置列的排序规则
  302. void SetColumnsOrder (const wxArrayInt &order)
  303.  
  304. // 获取列的最小宽度
  305. int GetColMinimalWidth (int col) const
  306. // 获取行的最小高度
  307. int GetRowMinimalHeight (int col) const
  308.  
  309. 选中模式:
  310. wxGridSelectCells
  311. wxGridSelectRows
  312. wxGridSelectColumns
  313. wxGridSelectRowsOrColumns
  314.  
  315. 对齐方式:
  316. wxALIGN_LEFT
  317. wxALIGN_TOP
  318. wxALIGN_RIGHT
  319. wxALIGN_BOTTOM
  320. wxALIGN_CENTER_VERTICAL
  321. wxALIGN_CENTRE_VERTICAL
  322. wxALIGN_CENTER
  323. wxALIGN_CENTRE

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



3. 演示样例代码

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

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

wxWidgets之wxGrid控件的更多相关文章

  1. wxpython 基本的控件 (文本)

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

  2. wxpython 基本的控件 (按钮)

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

  3. wxPython中基本控件学习

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

  4. Python实例讲解 -- wxpython 基本的控件 (按钮)

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

  5. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  6. HTML5 progress和meter控件

    在HTML5中,新增了progress和meter控件.progress控件为进度条控件,可表示任务的进度,如Windows系统中软件的安装.文件的复制等场景的进度.meter控件为计量条控件,表示某 ...

  7. 百度 flash html5自切换 多文件异步上传控件webuploader基本用法

    双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...

  8. JS与APP原生控件交互

    "热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...

  9. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

随机推荐

  1. 利用MAP动态创建C++类对象

    MFC的CRuntimeClass利用链表实现了C++类的动态创建.但是如果项目中对动态创建的要求比较低,我们完全可以利用map实现简单的动态创建. http://blog.csdn.net/yeji ...

  2. Sharepoint 查阅项字段和计算值字段的定义

    查阅项字段定义 <Field Type="Lookup" DisplayName="test2" Required="FALSE" E ...

  3. Java StringBuffer与StringBuider

    String 的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低,而且耗费大量内存空间. StringBuffer类和String类一样,也用来表示字符串,但是Strin ...

  4. 分享 | 自定义属于自己的U盘图标

    文章目录 步骤 注意 想不想也可以自定义自己的U盘图标?其实,这并不难 步骤 在网上下载ICO格式的图标,也可以将自己喜欢的图片转换成ICO格式,并将图片命名为demo.ico: 点击这里打开记事本, ...

  5. 博客 | 基于Travis CI实现Hexo在Github和Coding的同步自动化部署

    文章目录 完成Hexo主题安装和配置 基于Travis CI实现同步部署 参考内容 相关链接 待补充 完成Hexo主题安装和配置 如果您还没有安装Hexo环境,请参考Hexo文档安装,也给出这样两篇博 ...

  6. mysql系列-安装及服务启动

    一.window下的安装 详细见官网 https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html 以 MySQL 5.1 免安装 ...

  7. 打包工具 使用帮助 inno setup

    http://wenku.baidu.com/link?url=0VRJ8n9am1KgVAAqwz-AU1htXamo7Vh0d4QIdGG6_LcTrZBdb7lRim8Jx6M8KaLJDQm1 ...

  8. 解决413 Request Entity Too Large

    修改nginx配置    这是最简单的一个做法,着报错原因是nginx不允许上传配置过大的文件,那么件把nginx的上传大小配置调高就好. 1.打开nginx主配置文件nginx.conf,一般在/u ...

  9. SimpleDateFormat关于时间类的一些常用处理

    项目中经常会出现对时间类的一些处理,记录一下: 实例一:/** * 获取当前时间是星期几? * * @param args */ public static void main(String[] ar ...

  10. JSONUtil.bean2Json()报Property 'key' of class has no read method. SKIPPED的问题处理

    错误警告信息描述: net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:) Property 'handler' of class ...