- WxWidgets
-
Dieser Artikel wurde auf der Qualitätssicherungsseite des Portals Freie Software eingetragen. Beteilige dich an der Diskussion und hilf mit, den Artikel zu verbessern. wxWidgets Aktuelle Version: 2.8.10
(17. März 2009)Betriebssystem: Microsoft Windows, GNU/Linux, Mac OS X Kategorie: Klassenbibliothek Lizenz: wxWindows Licence (leicht modifizierte LGPL) Deutschsprachig: teilweise[1] www.wxwidgets.org wxWidgets (ehemals wxWindows) ist ein auf C++ basierendes Open-Source-Framework zur plattformunabhängigen Entwicklung von Anwendungen mit grafischer Benutzeroberfläche (GUI). Die wxWidgets-Lizenz ist eine leicht modifizierte LGPL und erlaubt daher die freie Verwendung in proprietärer und freier Software und den weiteren Vertrieb unter einer selbst gewählten Lizenz.
Zu den Programmen, die wxWidgets verwenden, gehören z. B. der Audioeditor Audacity, die Entwicklungsumgebung Code::Blocks, der Medienspieler VLC (< 0.9) und der AOL Communicator.
wxWidgets ist in C++ implementiert, und es existieren Bindings für eine ganze Reihe weiterer Programmiersprachen, darunter Python (wxPython), Perl (wxPerl), Lua (wxLua), Java und Ruby (wxRuby).
Inhaltsverzeichnis
Umfang
Die API erlaubt es, Programme für Windows/Unix/Mac und viele weitere Plattformen wie Symbian OS, Palm OS und Windows CE zu entwickeln. wxWidgets abstrahiert plattformnative Funktionalitäten, wie z. B. die IPC-Klassen, oder implementiert fehlende Komponenten, wie z. B. die Baumkomponente (engl. treecontrols). Einige Funktionen wie z. B. wxMetafile oder OLE werden notgedrungen für die jeweilige Plattform einzeln in wxWidgets implementiert. Für bessere Portabilität verzichtet wxWidgets auf Ausnahmen (exceptions) oder Templates. Die API umfasst über 450 Klassen mit über 5000 Funktionen. Wichtigste Funktionalitäten decken folgende Bereiche ab:
- Direkte Grafikausgabe
- Plattformunabhängiges GUI-Layout (sizerlayout)
- GUI-Ressourcen (XRC) werden per XML portiert
- Online-Dokumentation (z. B. HTML, CHM)
- Unicode und Meldungskataloge
- Plattformunabhängiges Grafikformat: XPM
- Sehr leistungsstarke wxImage-Klasse
- Maschinenunabhängige Streamklasse
- C++-typische Container/Daten-Klassen
- ODBC-Klasse
- MIME Types Manager
- OLE-Automatisierung
- Multithreading
- Konfiguration per Datei, Windows Registry oder *.ini
Kurze Übersicht zur Entwicklung
- 1992: erste Ausgabe, für XView und MFC
- 1993–1995: Motif und Xt Port, wxPython
- 1998–2002: wxGTK Port; wxMac 2.0 Port begonnen; wxX11 Port begonnen; OS/2 Port
- 2003: wxWidgets Software Foundation gegründet (nach einigen Monaten aufgelöst); WinCE Port
- 2004: Umbenennung von wxWindows zu wxWidgets auf Bitte von und Bezahlung durch Microsoft
- 2005: Nach langer Wartezeit Veröffentlichung von wxWidgets 2.6.0, löst vorherige „stable“ Version 2.4.2 von Mitte 2003 ab
- 2006: Ende 2006 ist die Version 2.8.0 erschienen
Unterstützung weiterer Sprachen für wxWidgets
- BASIC: wxBasic
- BlitzMax: wxMax
- C: wxC
- D: wxD
- Eiffel: wxEiffel
- Euphoria: wxEuphoria
- Java: wx4j
- JavaScript: wxJS
- Haskell: wxHaskell
- Lua: wxLua
- .NET (C#): wx.NET
- Perl: wxPerl
- PHP: wxPHP
- Python: wxPython
- Ruby: wxruby
Werkzeuge, Anbindungen und Klassen für wxWidgets
- wxFormBuilder ist ein freier GUI-Designer
- XML-Unterstützung: xml4wxwindows
- Mozilla-Anbindung: wxMozilla
- ActiveX- & Internet-Explorer-Anbindung: wxActiveX und wxIEHtmlWin
- Skype-Protokoll: ++Skype
- SSL-Unterstützung: wxSSL
- PDF-Ausgabe: wxPdfDocument
- SQLite-Anbindung: wxSQLite3
- Scintilla-Anbindung: (als wxSTC in den „Contribs“)
- Cairo für plattform- und hardware-übergreifendes Rendering von Vektorgrafiken
- Code-Repository: wxCode
- wxDockIt: Portierbare DockBars
- Code::Blocks ist eine Open-Source Entwicklungsumgebung
- poEdit ist ein Werkzeug zur Internationalisierung von Anwendungen
- wxDesigner ist ein kommerzieller GUI-Designer von Robert Roebling
- DialogBlocks ist ein kommerzieller GUI-Designer von Julian Smart
- Almas Dialog Designer ist ein freier GUI-Designer
- wxGlade, ein freier GUI-Designer für wxWidgets/wxPython, geschrieben in wxPython
- HelpBlocks ist eine kommerzielle Software zum Erstellen von Onlinedokumentationen
- wxTTS: text-to-speech Klasse, welche auf die MBROLA Sprachsynthese-Engine aufsetzt
- wxSVG ist eine Programmbibliothek zum Erstellen, Modifizieren und Rendern der SVG
- Jumli ist eine JAVA-basierte Klassen- und UML-Entwicklungsumgebung mit Anbindung an wxWidgets
- wxDev-C++ ist eine IDE für wxWidgets
- CodeLite ist eine Open-Source Entwicklungsumgebung
Einsatz im Embedded-Bereich
Mit wxEmbedded von Robert Roebling ist nun eine Version für die Linux-Distribution Familiar verfügbar, die die HP-iPAQ-Serie und andere Handheld-PCs unterstützt.
Programme, die wxWidgets verwenden
- aMule: Freier Filesharing-Client für das eDonkey- und das Kad-Netzwerk
- AOL Communicator
- aUCBLogo: Freier Interpreter für die Logo-Programmiersprache
- Audacity: Bearbeitungsprogramm für Tondateien
- BitWiseIM: Instant Messaging
- BOINC: Eine Softwareplattform für verteiltes Rechnen
- Code::Blocks: Freie Cross-Plattform-Entwicklungsumgebung für C und C++
- CodeLite: Freie Cross-Plattform-Entwicklungsumgebung für C und C++
- DVDStyler: Plattformunabhängige DVD-Authoring-Software
- Easytax: Niederländische Online-Steuererklärung
- FileZilla: FTP-Client ab Version 3
- Forte Agent: Ein News- und Mailreader für Windows
- FreeFileSync: Open-Source Dateisynchronisation für Windows und Linux
- Hugin (Software), eine plattformübergreifende Panoramasoftware
- Mahogany: Ein plattformunabhängiger News- und Mailreader
- MXWendler: Echtzeit Video Compositing
- pgAdmin III: Grafische Administrationsoberfläche für das PostgreSQL-Datenbanksystem
- RapidSVN: Ein plattformunabhängiger SVN-Client
- RocRail: Modellbahnsoftware für Windows und Linux
- Kirix Strata: Datenverarbeitungssoftware für Webdaten (CSV, HTML-Tabellen, RSS)
- Scorched 3D: 3D-Remake des Kult-Artillerie-Games Scorched Earth
- Share Daemon: P2P Filesharing Programm
- TortoiseCVS: Ein CVS-Client für Windows
- Thuban: Ein freier interaktiver Geodaten-Betrachter.
- UPX GUI: GUI für das Datenkompressionsprogramm UPX
- VLC media player: Ein portabler Multimedia-Player, der unter anderem ein wxWidgets-Interface hat. Ab Version 0.9 wird unter Windows und Linux auf Qt umgestellt.
- VueScan, Scanprogramm für Windows, Mac OSX und Linux
- wxMusik: Plattformunabhängiger Multimedia-Player
- wxDownload Fast: Downloadmanager
- wxMaxima Graphische Benutzeroberfläche zum Computeralgebrasystem Maxima
- WikidPad: Desktop Wiki System
- Xara Xtreme: Vektorbasiertes Grafik- und Zeichenprogramm
- xChm: Plattformunabhängier CHM-Betrachter
Siehe auch
Literatur
- Julian Smart, Kevin Hock, Stefan Csomor: Cross-Platform GUI Programming with wxWidgets. ISBN 0131473816 (http://www.informit.com/content/images/0131473816/downloads/0131473816_book.pdf ; Stand: 20. Februar 2009).
- Ryan Wilcox: The Experienced Man’s Notes for Cross-Platform GUI Programming with wxWidgets. 1. Auflage. 2009.
Einzelnachweise
- ↑ Internationalization. Abgerufen am 30. März 2009.
Weblinks
- Projekthomepage (englisch)
- wxWidgets-Lizenz (englisch)
- Wiki des wxWidgets-Projekts (englisch)
- Projekte, die wxWidgets verwenden (englisch)
- wxWidgets bei Sourceforge.net (englisch)
- wxCode Dort werden Erweiterungen zu den wxWidgets-Containerklassen angeboten(englisch)
- http://www.zetcode.com/tutorials/wxwidgetstutorial/ -ein kleines Tutorial zu wxWidgets (englisch)
- C++-Magazin eine Einführung in wxWidgets Teil 1 und 2 (deutsch)
Wikimedia Foundation.