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