我尝试使用自定义标签实现自定义wxGrid。根据wxwidgets文档,有必要实现Method:SetColLabelValue和GetColLabelValue。遗憾的是,wxGridTableBase类中的方法不会被我的代码覆盖。
#pragma once
#include <wx/grid.h>
#include <wx/string.h>
#include <wx/event.h>
#include <wx/string.h>
#include <vector>
class Grid :
public wxGrid
{
unsigned int m_rows_occupied;
std::vector<wxString> m_colLabels;
wxString* m_colLabelsArr;
public:
Grid(wxWindow* _parent,wxWindowID _ID,wxPoint _pos,wxSize _size,long _style);
~Grid(void);
void InsertValues(char* _col1,char* _col2);
void SetRow(unsigned int _row,char* _col1,char* _col2);
void SetCell(unsigned int _row,unsigned int _cell,char* _col1);
unsigned int* Size(void){return &m_rows_occupied;};
virtual void SetColLabelValue( int WXUNUSED(col), const wxString& )override;
virtual wxString GetColLabelValue(int col) override{return wxString("");};
};
答案 0 :(得分:1)
您已将wxGrid
和wxGridTableBase
中的方法混为一谈。如果要使用自定义表,则需要从后者派生表类,而不是前者。
当然,如果您只需要自定义一些标签,则根本不需要使用自定义表格,只需拨打wxGrid::SetColLabelValue()
即可将其设置为您需要的任何标签。