c++ - wxSizers not arranging correctly in wxWidgets -
c++ - wxSizers not arranging correctly in wxWidgets -
i have 2 wxtextctrl
s , 2 wxbutton
s within panel. want arrange them using sizers. want set wxtextctrl
s horizontal , wxbutton
s vertical. seems not work, here's code:
wxpanel* panel = new wxpanel(this); wxpanel* panel2 = new wxpanel(this); wxstatictext* u = new wxstatictext(panel, wxid_any, "username"); uid = new wxtextctrl(panel, wxid_any); wxstatictext* p = new wxstatictext(panel, wxid_any, "password"); pass = new wxtextctrl(panel, wxid_any, "", wxdefaultposition, wxdefaultsize, wxte_password); wxbutton* r = new wxbutton(panel, 1, "register"); wxstaticline* line = new wxstaticline(panel2, wxid_any, wxdefaultposition, wxsize(0,15)); wxbutton* l = new wxbutton(panel, 2, "login"); //wxdefaultsize, wxte_multiline | wxhscroll | wxte_readonly); wxboxsizer* panelsizer1 = new wxboxsizer(wxhorizontal); panelsizer1->add(u, wxsizerflags().top()); panelsizer1->add(uid, wxsizerflags().top()); panelsizer1->add(p, wxsizerflags().top()); panelsizer1->add(pass, wxsizerflags().top()); panel->setsizer(panelsizer1); wxboxsizer* panelsizer = new wxboxsizer(wxvertical); panelsizer->add(l, wxsizerflags().center()); panelsizer->add(line, wxsizerflags().center()); panelsizer->add(r, wxsizerflags().center()); panel->setsizer(panelsizer);
what should do?
calling panel->setsizer()
twice, panelsizer1
first , panelsizer
, not going useful sec phone call replaces sizer set first one. must embed sizers 1 other accomplish desired layout.
also, hint: typical 2-column layout labels on left , text controls on right easier utilize wxflexgridsizer , not box sizers in first place.
c++ user-interface wxwidgets wx
Comments
Post a Comment