wxWidgets

from Wikipedia, the free encyclopedia
wxWidgets

logo
Basic data

Publishing year 1992
Current  version 3.1.3
(October 28, 2019)
Current preliminary version 3.1.3
(October 28, 2019)
operating system Microsoft Windows , Unix derivatives , PalmOS , OS / 2
programming language C ++
category GUI toolkit
License modified LGPL
German speaking Yes
www.wxwidgets.org
The graphical user interface of Audacity is implemented using wxWidgets

wxWidgets (formerly wxWindows ) is an open source GUI toolkit for developing graphical user interfaces . It is developed in the programming language C ++ and licensed under a modified LGPL , which also allows the distribution of derived works under its own conditions. Although wxWidgets is implemented in C ++, there are connections for a large number of other programming languages. Thanks to its platform independence, wxWidgets enables the GUI-specific code of a program to be compiled and executed on a wide variety of platforms with little or no modification.

wxWidgets is used in a number of well-known projects, for example the audio editor Audacity , the strategy game 0 AD , the FTP client FileZilla , the Code :: Blocks development environment and, in the past, Bitcoin Core .

scope

The programming interface enables the development of GUI programs for Windows , Unix , Mac , Symbian OS , Palm OS and Windows CE . wxWidgets abstracts platform-dependent functions, for example interprocess communication (IPC), and offers additional functions, for example a hash table . Some functions such as wxMetafile or OLE are implemented individually in wxWidgets for the respective platform. For better portability wxWidgets waived exceptions (English: exceptions ) and templates . The API includes over 450 classes with over 5000 functions. The most important functionalities cover the following areas:

  • Direct graphic output
  • Platform- independent GUI layout (sizer layout)
  • GUI resources (XRC) are ported via XML
  • Online documentation (e.g. HTML , CHM )
  • Unicode and message catalogs
  • Platform-independent graphic format: XPM
  • Very powerful wxImage class
  • Machine-independent stream class
  • C ++ typical container / data classes
  • MIME Types Manager
  • OLE automation
  • Multithreading
  • Configuration via file, Windows registry or * .ini

development

In 1992 the first edition appeared, which was for XView and MFC .

From 1993 to 1995 Motif , the Xt port and wxPython were developed and published. From 1998 to 2002 wx GTK Port was used, wx Mac 2.0 Port, wx X11 Port and OS / 2 Port started.

In 2003 the wxWidgets Software Foundation was founded, which was dissolved after a few months. A year later wxWindows was renamed wxWidgets at the request and payment of Microsoft .

In 2005 wxWidgets 2.6.0 was released. It replaced the previous stable version 2.4.2 from mid-2003. Version 2.8.0 was released at the end of 2006, version 2.9.0 was released in September 2009.

Support of additional languages ​​for wxWidgets

language derivative
BASIC wxBasic
BlitzMax wxMax
C. wxC
D. wxD
Eiffel wxEiffel
Erlang wxErlang
Euphoria wxEuphoria
Java wx4j
JavaScript wxJS, GLUEScript
Haskell wxHaskell
Hollywood RapaGUI
Lua wxLua
.NET ( C # ) wx.NET
Pearl wxPerl
PHP wxPHP
python wxPython
Ruby wxruby

See also

literature

  • Julian Smart, Kevin Hock, Stefan Csomor: Cross-Platform GUI Programming with wxWidgets . ISBN 0-13-147381-6 (English, PDF [accessed February 20, 2009]).
  • Ryan Wilcox: The Experienced Man's Notes for Cross-Platform GUI Programming with wxWidgets . 1st edition. 2009.

Web links

Commons : WxWidgets  - Collection of images, videos and audio files

Individual evidence

  1. a b Downloads. Retrieved January 6, 2017 .
  2. wxwidgets.org ( Memento of October 24, 2006 in the Internet Archive )
  3. The wxwidgets Open Source Project on Open Hub: Languages ​​Page . In: Open Hub . (accessed on July 18, 2018).
  4. a b wxWidgets license (English)
  5. Internationalization. Retrieved March 30, 2009 .
  6. a b Harald Bögeholz: wxWindows is now called wxWidgets , Heise online, February 22, 2004
  7. List of projects