hier ein Stück Code ist, der alle Elemente auf der parent
(wxPlane) setzt:WxWidgets: wxDatePickerCtrl erweitert ohne sichtbaren Grund
parent->DestroyChildren();
wxBoxSizer* EntrySizer=new wxBoxSizer(wxVERTICAL);
EntryTitle = new wxStaticText(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, 0);
EntryTitle->Wrap(-1);
EntrySizer->Add(EntryTitle, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5);
wxBoxSizer* ValueSizer=new wxBoxSizer(wxHORIZONTAL);
Value_ = new wxStaticText(parent, wxID_ANY, wxT("Значение:"), wxDefaultPosition, wxDefaultSize, 0);
Value_->Wrap(-1);
ValueSizer->Add(Value_, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
wxDateTime t;t.ParseISODate(strvalue);
Value = new wxDatePickerCtrl(parent, wxID_ANY, t);
ValueSizer->Add(Value, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
EntrySizer->Add(ValueSizer, 1, wxEXPAND, 5);
EntrySizer->Add(0, 0,1, wxEXPAND, 5);
parent->SetSizer(EntrySizer);
parent->Layout();
Value->Bind(wxEVT_DATE_CHANGED,DateEntry::Edit,this);
Value->SetFocus();
Es gefällt das (kurzes Beispiel in wxFormBuilder) aussehen sollte:
Aber stattdessen sieht es so aus:
Was mache ich falsch? Vielleicht etwas mit Fahnen? Hier
ist ein Minimal, Complete, und prüfbare Beispiel-Code, der das Problem einfacher zeigt:
#include <wx/wx.h>
#include <wx/app.h>
#include <wx/datectrl.h>
class cApp : public wxApp
{
public:
virtual bool OnInit();
};
class cFrame: public wxFrame
{
public:
cFrame(wxFrame *frame, const wxString& title)
: wxFrame(frame, -1, title,
wxPoint(-1,-1),wxSize(600,600))
{
wxBoxSizer* ValueSizer =
new wxBoxSizer(wxHORIZONTAL);
wxDatePickerCtrl * Value =
new wxDatePickerCtrl(this, wxID_ANY, wxDefaultDateTime);
ValueSizer->Add(Value, 0, wxALL, 5);
SetSizer(ValueSizer);
Layout();
}
};
IMPLEMENT_APP(cApp);
bool cApp::OnInit()
{
cFrame* frame =
new cFrame(0L, _("so41451250"));
frame->Show();
return true;
}
Versuchen Sie Folgendes: ValueSizer-> Add (Value, 0, wxEXPAND, 5); – Igor
Nein, das Gleiche. –