WxPerlTafel

Dies ist eine Kurzübersicht zu wesentlichen Detailinformationen der WxProgrammierung. Eine mehr ausführlich Anleitung bietet das WxPerl Tutorial.

WidgetKlassen

Alle Klassen und Funktionen werden mit einem Wx:: vor den hier erwähnten Namen geschrieben. Die Klassen sind oft core, aber manchmal auch in seperaten Modulen ausgelagert, die mit use/require zu laden sind, aber "use Wx qw[:allclasses];" läd alle installierten Wx::* Module auf einmal. Und Camelcase (Namensteile werden zusammen geschrieben und beginnen mit Großbuchstaben) ist Konvention für Die Namen der Klassen, Methoden und Funktionen.

Fenster

   Frame          Haupfenster eines Programms, kann Leisten mit Menü, Status und Werkzeugen verwalten
   MiniFrame      Fenster mit minimalen Rahmen und keinen weitere Fähigkeiten
   MDIParentFrame Oberfenster für MDI
   MDIChildFrame  Kinderfenster, daß nur innerhalb des MDIParentFrame dargestellt wird
   Dialog         Fenster mit Panel, daß beim Schließen Programmprozess nicht beendet
   Wizard         Dialoge mit mehreren Panel und Navigation dafür
   Panel          Grundfläche um darauf andere Widgets zu positionieren
   Window         Basisklasse aller sichtbaren Objekte (Widget), nur in früheren Versionen als Fenster benutzbar

Dialoge

keine Klasse sondern eine Funktionen die Dialoge sofort aufrufen und nur einen Wert zurückgeben:

   MessageBox( $msg, $caption, $flags, $parent, $x, $y);
   AboutBox
   ShowTip
   DirSelector
   FileSelector
   GetColourFromUser
   GetFontFromUser
   GetMultipleChoices
   GetNumberFromUser
   GetPasswordFromUser
   GetTextFromUser
   GetSingleChoice

Klassen die modale Dialoge erzeugen, Dialoge die nach Erzeugung gezeigt werden können und nach Benutzung ausgewertet werden können:

   MessageDialog 
   SingleChoiceDialog 
   MultiChoiceDialog 
   TextEntryDialog 
   PasswordEntryDialog 
   FileDialog 
   DirDialog 
   FontDialog 
   PrintDialog 
   ColourDialog

Auswahl

   Button           einfacher Knopf mit Beschriftung
   BitmapButton     Knopf mit Bild/Icon auf der Oberfläche
   SpinButton       2 Knöpfe mit Pfeilen für links/recht oder oben/unten Entscheidungen
   CheckBox         beschriftetes Kästchen an das ein Häkchen gesetzt werdne kann
   RadioButton      beschriftetes Kästchen das nur eine Auswahl je Gruppe zuläßt
   ListBox          Liste von Labels die mehrfache Auswahl erlaubt
   Slider           Regler mit Textbox die aktuell gewählten Wert anzeigt
   CalendarCtrl     wähl ein Datum
   FileCtrl         wähl eine Datei, Inhalt des Wx::FileDialog
   FilePickerCtrl   Knopf der Wx::FileDialog aufruft
   DirPickerCtrl    Knopf der Wx::DirDialog aufruft
   FontPickerCtrl   Knopf der Wx::FontDialog aufruft
   ColourPickerCtrl Knopf der Wx::ColourDialog aufruft

Panelauswahl

Diese etwas komplexeren Widget, die von Wx::BookCtrl abgeleitet sind, lassen immer zwischen Panel auswählen, von denen eines samt Inhalt immer sichtbar ist.

   Notebook         benutzt eine Reiterleiste
   Listbook         benutzt eine Liste aka Wx::ListCtrl
   Choicebook       benutzt Wx::Choice 
   Treebook         benutzt eine Baumstruktur aka Wx::TreeCtrl 
   Toolbook         benutzt eine Werkzeugleiste aka Wx::ToolBar 

Eingabe

   TextCtrl            einfaches Textfeld über eine oder mehr Zeilen
   RichTextCtrl        Textfeld mit mehr Formatierungsmöglichkeiten
   StyledTextCtrl      aka Wx::STC aka Scintilla, Textfeld mit syntaxfärbung und sehr viel mehr
   SpinCtrl            Textfeld mit SpinButton

Dekoration

   StaticText          Text / Label
   StaticLine          Trennlinie, senkrecht oder waagerecht
   StaticBox           Rahmen mit Überschrift um eine Gruppe von Widget (graphischen Elementen)
   Gauge               Balken der Prozentangabe/Fortschrittsangabe anzeigen kann
   StaticBitmap        Bild
   AnimationCtrl       Animation / Film der ohne Nutzerkontrolle ständig abläuft

Sizer

Sind keine Widget, also nicht sichtbar, aber organisieren die Anordnung der Widget.

   BoxSizer             eindimensionaler, linearer Sizer
   StaticBoxSizer       BoxSizer mit Rahmen und Label
   StdDialogButtonSizer für eine Zeile mit Standart Button im Standartlayout des OS
   GridSizer            einfache Tabelle mit gleichgroßen Zellen
   FlexGridSizer        Tabelle mit Zeilen und Spalten variabler Größe
   GridBagSizer         FlexGridSizer wo Widgets Zellengrenzen überschreiten können (wie col- und rowspan in html)

Methodenparameter

... haben eine feste Reihenfolge, die im groben folgendem Schema folgt.

$obj->Mothodename(Elterwidget, WidgetID, Input, Pos, Größe, Style, Zusätze ....);

Konstanten

Alle Konstanten werden aus dem Modul "Wx::Wx_Exp.pm" geladen (zum nachschaun), aber aus dem Namensraum "Wx" importiert (use Wx qw( konstante, :gruppe );), Faule benutzen "use Wx qw(:everything);". Wenn sie importiert werden, können sie wie folgt geschrieben werden, ansonst: "&Wx::wxKONSTANTE".

Abstände

Diese Konstanten bestimmen in welche Richtungen dieses Widget zusätzlichen Rand zu seiner Umgebung haben soll.

   wxALL = wxTOP | wxBOTTOM | wxLEFT | wxRIGHT
     aka   wxNORTH,wxSOUTH,   wxWEST,  wxEAST

Ausrichtung

   wxALIGN_LEFT wxALIGN_RIGHT wxALIGN_TOP wxALIGN_BOTTOM
   wxALIGN_CENTER_VERTICAL aka wxALIGN_CENTRE_VERTICAL
   wxALIGN_CENTER_HORIZONTAL aka wxALIGN_CENTRE_HORIZONTAL 
   wxALIGN_CENTER aka wxALIGN_CENTRE = ...ENTER_HORIZONTAL | ...ENTER_VERTICAL
Default : wxALIGN_LEFT | wxALIGN_TOP

Größe

   wxEXPAND aka wxGROW nimmt allen verfügbaren Platz ein.
   wxSHAPED            wie wxEXPAND, unter Wahrung der zugewiesenen Höhe/Breite-Verhältnisses.
   wxFIXED_MINSIZE     Größe wird unveränderlich nach anfänglicher Berechnung 

Haupfenster

   wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER

Allgemein Widgets

   wxID_ANY aka -1  eine noch freie ID
   wxID_NONE
   vordefinierte, reservierte ID = wxID_LOWEST .. wxID_HIGHEST

MsgBoxen

   wxYES_NO  wxYES wxNO wxCANCEL  wxOK
   wxICON_EXCLAMATION wxICON_HAND  wxICON_ERROR wxICON_QUESTION  wxICON_INFORMATION 

Tasten

   WXK_SHIFT WXK_ALT WXK_CONTROL
   WXK_BACK WXK_TAB WXK_RETURN WXK_ESCAPE WXK_SPACE WXK_SCROLL WXK_NUMLOCK
   '#' => 47 tilde => 92,
   WXK_DELETE WXK_INSERT WXK_PAGEUP, WXK_PAGEDOWN, WXK_HOME, WXK_END,
   WXK_LEFT WXK_UP WXK_RIGHT WXK_DOWN, WXK_F1 .. WXK_F12
   WXK_NUMPAD_SPACE WXK_NUMPAD_TAB WXK_NUMPAD_ENTER WXK_NUMPAD_F1

Menüitem

   wxID_ABOUT wxID_ADD wxID_APPLY wxID_BOLD wxID_CANCEL wxID_CLEAR wxID_CLOSE
   wxID_COPY wxID_CUT wxID_DELETE wxID_EDIT wxID_FIND wxID_FILE wxID_REPLACE
   wxID_BACKWARD wxID_DOWN wxID_FORWARD wxID_UP wxID_HELP wxID_HOME wxID_INDENT
   wxID_INDEX wxID_ITALIC wxID_JUSTIFY_CENTER  wxID_JUSTIFY_FILL 
   wxID_JUSTIFY_LEFT wxID_JUSTIFY_RIGHT 
   wxID_NEW wxID_NO wxID_OK wxID_OPEN wxID_PASTE wxID_PREFERENCES wxID_PRINT
   wxID_PREVIEW wxID_PROPERTIES wxID_EXIT wxID_REDO wxID_REFRESH wxID_REMOVE
   wxID_REVERT_TO_SAVED wxID_SAVE wxID_SAVEAS wxID_SELECTALL wxID_STOP 
   wxID_UNDELETE wxID_UNDERLINE wxID_UNDO wxID_UNINDENT 
   wxID_YES wxID_ZOOM_100 wxID_ZOOM_FIT wxID_ZOOM_IN  wxID_ZOOM_OUT

Ereignisse

werden Wx::Event::eventname benutzt oder als Konstanten von Wx::Event importiert, kommen aber ebenfalls aus "Wx::Wx_Exp.pm". Bequeme Menschen benutzen "use Wx::Event qw(:everything);".

Allgemein

   EVT_SIZE( $widget, \&$callback );    wenn sich Größe des Widet ändert
   EVT_SIZING

Tastatur

   EVT_KEY_DOWN( $widget, \&$callback );
   EVT_KEY_UP
   EVT_CHAR

Maus

   EVT_LEFT_UP( $widget, \&$callback );
   EVT_LEFT_DOWN EVT_RIGHT_UP EVT_RIGHT_DOWN EVT_MOTION 

Stoppuhr

   my $timer = Wx::Timer->new( $Widget, $TimerID );
   $timer->Start( $millisekunden, $einmal_auslösen  );
   $timer->Stop;

   EVT_TIMER( $Widget, $TimerID , \&$callback );

Menü

Der erste Event wird bei Auswahl des Menüitem ausgelöst, der zweite bereits beim anwählen.

   EVT_MENU( $widget, $itemID , \&$callback );
   EVT_MENU_HIGHLIGHT


-- HerbertBreunung - 12 Oct 2009

Topic revision: r18 - 18 Feb 2010 - 02:13:09 - HerbertBreunung
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um Rückmeldung.