0

カスタムラベルを使用してカスタム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("");};
};
4

1 に答える 1

1

wxGridとでメソッドを混同しましたwxGridTableBase。カスタムテーブルを使用する場合は、前者ではなく後者からテーブルクラスを派生させる必要があります。

もちろん、一部のラベルをカスタマイズする必要がある場合は、カスタムテーブルを使用する必要はまったくなく、呼び出しwxGrid::SetColLabelValue()て必要なものに設定するだけです。

于 2013-02-01T18:55:29.333 に答える