wxWidgets: In wxTextCtrl eingabe machen
-
Im Konstruktor:
namefield = new wxTextCtrl(this,wxID_NAME,"Name",wxPoint(10, 10),wxSize(200, 20));
Und in der Klasse:
wxTextCtrl* namefield;
-
Schau mal was der aufruf von IsEditable() zurück gibt.
http://wxwidgets.org/manuals/stable/wx_wxtextctrl.html#wxtextctrliseditable
-
IsEditable gibt True zurück. ich hab jetzt das Editierfeld im Konstuktor auf Editierbar gesetzt:
namefield->SetEditable(true);
Die Ausgabe fürs Textfeld:
namefield->Clear(); FindWindowById(wxID_NAME); if(namefield->IsEditable()) {const wxString flag = wxT("TRUE"); namefield->AppendText(flag);} else {const wxString flag = wxT("FALSE"); namefield->AppendText(flag);}
-
Dann müsstest du auch was eingeben können. Das TextCtrl brauch jedoch den Focus dafür...
-
Wie war das mit dem Focus?
-
Einfach ins TextCtrl klicken, oder SetFocus aufrufen
-
ich kann ins TextCtrl nicht klicken
Aber mit SetFocus kann ich beim Programmstart das Feld editieren
Im Konstruktor hinzugefügt:namefield->SetFocus();
wenn ich allerdings klicke komm ich überhaupt nicht mehr rein
-
Ich dachte gerade an eine neue Funktion:
void BasicFrame::OnName(wxCommandEvent& event) { namefield->SetFocus(); }
Das Programm stürzt dann allerdings immer ab
-
Ich dachte gerade an eine neue Funktion:
void BasicFrame::OnName(wxCommandEvent& event) { namefield->SetFocus(); }
Das Programm stürzt dann allerdings immer ab
-
sorry der doppel post
-
Ok ich habs geschaft
namefield = new wxTextCtrl(this,wxID_NAME,"Name",wxPoint(10, 10),wxSize(200, 20));
wurde zu
namefield = new wxTextCtrl(panel,wxID_NAME,"Name",wxPoint(10, 10),wxSize(200, 20));
trotzdem danke für deine hilfe
-
Zeig mal deinen gesamten Code.
Der Code ist soweit korrekt und müsste Funktionieren.Und FindWindowById(wxID_NAME); gibt dir einen Pointer zurück, ergo müsstest du den irgendwo speichern...