wxWidgets - jak zmienic naglowki w wxGrid

0

Uzywam wxDevcpp. Szukalem w pomocy i nie znalazlem tego: jak zmienic naglowki w siatce? Domyslnie numerowanie to A, B, C itd....
Dla mnie potrzebna jest tabela z dwoma naglowkami o okreslonych nazwach...

0

http://www.wxwidgets.org/manuals/2.6.3/wx_wxgrid.html#wxgridsetcollabelvalue
W edytorze graficznym nie sprawdzałem, ale metoda może być uruchomiona po utworzeniu grida, więc nie powinno być problemu.

0

Bez efektu:


    WxGrid1 = new wxGrid(WxPanel1, ID_WXGRID1, wxPoint(126,69), wxSize(270,288));
    WxGrid1->SetDefaultColSize(80);
    WxGrid1->SetDefaultRowSize(20);
    WxGrid1->SetRowLabelSize(50);
    WxGrid1->SetColLabelSize(25);
        WxGrid1->SetColLabelValue(1,wxT("Nazwa"));                          /*Nie dziala*/
    WxGrid1->CreateGrid(1,2,wxGrid::wxGridSelectCells);

Chyba chodzi o to:

If you are using a derived grid table you must override wxGridTableBase::SetColLabelValue for this to have any effect.

Ale konkretnie, jak to zrealizowac? Moze rzuci ktos przykladem kodu? Bylbym wdzieczny...

0
void gridFrm::CreateGUIControls(void)
{
    //Do not add custom code here
    //wxDev-C++ designer will remove them.
    //Add the custom code before or after the blocks
    ////GUI Items Creation Start

    wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxHORIZONTAL);
    this->SetSizer(WxBoxSizer1);
    this->SetAutoLayout(TRUE);

    WxPanel1 = new wxPanel(this, ID_WXPANEL1, wxPoint(0,0), wxSize(311,294));
    WxBoxSizer1->Add(WxPanel1,0,wxALIGN_CENTER_VERTICAL | wxALL,0);

    WxGrid1 = new wxGrid(WxPanel1, ID_WXGRID1, wxPoint(3,53), wxSize(525,215));
    WxGrid1->SetDefaultColSize(50);
    WxGrid1->SetDefaultRowSize(25);
    WxGrid1->SetRowLabelSize(50);
    WxGrid1->SetColLabelSize(25);
    WxGrid1->CreateGrid(5,5,wxGrid::wxGridSelectCells);

    GetSizer()->Fit(this);
    GetSizer()->SetSizeHints(this);
    this->SetTitle(wxT("grid"));
    this->Center();
    this->SetIcon(wxNullIcon);

    ////GUI Items Creation End
        WxGrid1->SetColLabelValue(0, "pierwsza");

        WxGrid1->SetColLabelValue(1,wxT("Nazwa"));                          /*Dziala*/

}

Ten kod powyżej działa jak najbardziej prawidłowo i zmienia nagłówki kolumn. Prawdopodobnie chodzi o to, że kod musi być dopisany po ////GUI Items Creation End.

0

no raczej...

wpisy typu
////GUI Items Creation End
są tworzone automatycznie przez IDE, jeś zrobisz pomiędzy nimi wpis to po ponownym zapisaniu projektu i kompilacji wpisany kod zostanie usunięty

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0