visual c++ - wxWidgets Custom wxGrid



我尝试使用自定义标签实现自定义wxGrid。根据 wxwidgets 文档,有必要实现方法: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("");};
};

你混淆了wxGridwxGridTableBase的方法。如果要使用自定义表,则需要从后者而不是前者派生表类。

当然,如果你只需要自定义一些标签,根本不需要使用自定义表,只需调用wxGrid::SetColLabelValue()将它们设置为您需要的任何内容即可。

相关内容

  • 没有找到相关文章

最新更新