Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
gui:start [2009/12/03 21:11]
kerli Einarbeiten des Artikel von dani93 aus dem Artikelwettbewerb
gui:start [2022/09/22 19:58] (aktuell)
Zeile 11: Zeile 11:
  ​\\ ​  ​\\ ​
    
-{{user:dani93:​contest:​firstbirthday:​gnome.jpg|Ubuntu mit Gnome 2.26}} +{{user:nufan:​contest:​firstbirthday:​gnome.jpg|Ubuntu mit Gnome 2.26}} 
-{{user:dani93:​contest:​firstbirthday:​kde.jpg|Kubuntu mit KDE 4.2}} \\  +{{user:nufan:​contest:​firstbirthday:​kde.jpg|Kubuntu mit KDE 4.2}} \\  
-{{user:dani93:​contest:​firstbirthday:​xp.jpg|Windows XP}} +{{user:nufan:​contest:​firstbirthday:​xp.jpg|Windows XP}} 
-{{user:dani93:​contest:​firstbirthday:​vista.jpg|Windows Vista Aero}}+{{user:nufan:​contest:​firstbirthday:​vista.jpg|Windows Vista Aero}}
  
 ==== Steuerelemente (Widgets) ==== ==== Steuerelemente (Widgets) ====
Zeile 20: Zeile 20:
  
 <​html><​div style="​float:​right;"></​html>​ <​html><​div style="​float:​right;"></​html>​
-{{user:dani93:​contest:​firstbirthday:​button.png|Button}} \\  +{{user:nufan:​contest:​firstbirthday:​button.png|Button}} \\  
-{{user:dani93:​contest:​firstbirthday:​slider und spinbox.png|Slider und Spinbox}} \\  +{{user:nufan:​contest:​firstbirthday:​slider und spinbox.png|Slider und Spinbox}} \\  
-{{user:dani93:​contest:​firstbirthday:​textbox checkbox buttons.png|Textbox,​ Checkboxen und Buttons}} \\ +{{user:nufan:​contest:​firstbirthday:​textbox checkbox buttons.png|Textbox,​ Checkboxen und Buttons}} \\ 
 <​html></​div></​html>​ <​html></​div></​html>​
  
Zeile 50: Zeile 50:
 ==== GTK+ (C)==== ==== GTK+ (C)====
  
-Das **G**IMP-**T**ool**k**it ist eine freie Bibliothek (unter der LGPL) , mit der ihr grafische Benutzeroberflächen (GUI) in der Programmiersprache C erstellen könnt. Sie wurde anfangs für das freie Bildbearbeitungsprogramm [[http://​www.gimp.org|GIMP]] geschrieben. Allerdings sind auch die GUIs vieler anderer Programme mit GTK+ erstellt worden, zum Beispiel die freien Desktopumgebungen [[http://​www.gnome.org|GNOME]] oder [[http://​www.xfce.org|Xfce]],​ sowie viele andere Anwendungen. Für GTK+ existieren auch noch Bindings (Anbindungen) für einige andere Programmiersprache,​ wie C++ ([[http://​www.gtkmm.org|gtkmm]]),​ Java (java-gnome),​ Python ([[http://​www.pygtk.org|PyGTK]]),​ C# ([[http://​www.mono-project.com|GTK#​]],​ im Mono-Projekt) und mehr.+{{:​gui:​gtkmm:​gtkmm_logo.png?​80x80 |}}Das **G**IMP-**T**ool**k**it ist eine freie Bibliothek (unter der LGPL) , mit der ihr grafische Benutzeroberflächen (GUI) in der Programmiersprache C erstellen könnt. Sie wurde anfangs für das freie Bildbearbeitungsprogramm [[http://​www.gimp.org|GIMP]] geschrieben. Allerdings sind auch die GUIs vieler anderer Programme mit GTK+ erstellt worden, zum Beispiel die freien Desktopumgebungen [[http://​www.gnome.org|GNOME]] oder [[http://​www.xfce.org|Xfce]],​ sowie viele andere Anwendungen. Für GTK+ existieren auch noch Bindings (Anbindungen) für einige andere Programmiersprache,​ wie C++ ([[http://​www.gtkmm.org|gtkmm]]),​ Java (java-gnome),​ Python ([[http://​www.pygtk.org|PyGTK]]),​ C# ([[http://​www.mono-project.com|GTK#​]],​ im Mono-Projekt) und mehr.
  
   * Wird verwendet von: Gnome, LXDE, GIMP, OpenOffice   * Wird verwendet von: Gnome, LXDE, GIMP, OpenOffice
Zeile 57: Zeile 57:
 ==== gtkmm (C++) ==== ==== gtkmm (C++) ====
  
-Die C++ Anbindung für GTK+.+{{:​gui:​gtkmm:​gtkmm_logo.png?​80x80 |}}Gtkmm ist die C++ Anbindung für GTK+. Im Gegensatz zum originalen GTK+ besitzt GTKmm eine Klassenhierarchie,​ die die Entwicklung und Weiterentwicklung neuer Widgets stark vereinfacht. Die Typensicherheit von GTKmm erleichtert die Programmierarbeit enorm. Bei Einsatz der Gtkmm Bibliotheken werden bereits zur Kompilierung Fehler im Quelltext erkannt was bei der C-Version (GTK+) im jetzigen Entwicklungsstadium nicht der Fall ist und deshalb mögliche Programmierfehler erst durch undefiniertes Verhalten auftreten können. 
 +In GTK+ kommen ausschließlich Zeiger zur Anwendung. Als C++-Programmierer sollte von Zeigern nur in Ausnahmefällen Gebrauch gemacht werden, stattdessen sollte vermehrt auf Membervariablen zurückgegrifen werden um die Speicherverwaltung zu vereinfachen. 
 + 
 +Die Gtkmm Bibliotheken sind primär für Unix,- und Linux-Derivate entwickelt worden, die GUI-Programme können aber auch auf Mac OS X und Microsoft Windows ohne größeren Aufwand portiert werden. 
 + 
 +Gtkmm ist unter der LGPL frei verwendbar.
  
   * Wird verwendet von: Inkscape, GParted   * Wird verwendet von: Inkscape, GParted
 +  * Zum [[gui:​gtkmm:​start|Gtkmm-Tutorial]]
  
 ==== Qt (C++) ==== ==== Qt (C++) ====
  
-Qt ist eine vom norwegischen Unternehmen Trolltech, welches 2008 von Nokia aufgekauft wurde, entwickelte C++ Klassenbibliothek ​für die plattformübergreifende Erstellung von grafischen ​Benutzeroberflächen. Zum Beispiel wurde die Desktopumgebung KDE mit Qt geschrieben,​ wie auch viele Programme, die für KDE entwickelt worden sind. Qt steht unter einem dualen Lizenzsystem,​ einerseits einer kommerziellen Lizenz und andererseits der LGPL, welche eine Nutzung sowohl in Opensource-Programmen als auch in komerziellen ​Programmen ​sofern ​Änderungen an Qt ansich ebenfalls unter der LGPL weitergegeben werden.\\  +{{:​gui:​qt:​qt-logo.jpg?​80x80 |}}Qt (sprich "​cute"​) ​ist eine vom norwegischen Unternehmen Trolltech, welches 2008 von Nokia aufgekauft wurde, entwickelte C++ Klassenbibliothek ​mit der man unter anderem grafische ​Benutzeroberflächen ​erstellen kann. Zum Beispiel wurde die Desktopumgebung KDE mit Qt geschrieben,​ wie auch viele Programme, die für KDE entwickelt worden sind. Qt steht unter einem dualen Lizenzsystem,​ einerseits einer kommerziellen Lizenz und andererseits der LGPL, welche eine Nutzung sowohl in Opensource-Programmen als auch in kommerziellen ​Programmen ​erlaubt. ​Änderungen an der Bibliothek selbst müssen auch weitergegeben werden.\\  
-Auch für Qt gibt es Bindings an andere Programmiersprachen,​ unter anderem Python, Ruby, C# und Java.+Die Bibliothek zeichnet sich auch durch ihre Plattformunabhängigkeit aus. Auch für Qt gibt es Bindings an andere Programmiersprachen,​ unter anderem Python, Ruby, C# und Java.
  
   * Wird verwendet von: KDE, GoogleEarth,​ VLC, Virtualbox   * Wird verwendet von: KDE, GoogleEarth,​ VLC, Virtualbox
 +  * Zum [[frameworks:​qt:​start|Qt-Tutorial]]
  
 ==== wxWidgets (C++) ==== ==== wxWidgets (C++) ====
  
-wxWidgets, früher bekannt als wxWindows, ist eine C++ Bibliothek, mit der ihr GUIs erstellen könnt. Dabei versucht wxWidget sich möglichst als Wrapper für die native GUI des Betriebssystems darzustellen,​ d.h. wxWidgets benutzt keine eigene Benutzeroberfläche,​ sondern benutzt die des Betriebssystems,​ auf dem das Programm kompiliert und ausgeführt wird. wxWidgets ist eine quelloffene Bibliothek und steht unter einer leicht modifizierten LGPL-Lizenz die es erlaubt, die Bibliothek für proprietäre und freie Anwendungen benutzen zu können. Beispiele für Programme, die mit wxWidgets erstellt worden, sind der Audioeditor [[http://​audacity.sf.net|Audacity]] oder die freie Entwicklungsumgebung [[http://​codeblocks.org|Code::​Blocks]]. Auch für wxWidgets existieren Bindings an andere Programmiersprachen,​ darunter Python (wxPython), Perl (wxPerl) und Ruby (wxRuby).+{{:​gui:​wxwidgets:​wxwidgets_logo.png?​80x80 |}}wxWidgets, früher bekannt als wxWindows, ist eine C++ Bibliothek, mit der ihr GUIs erstellen könnt. Dabei versucht wxWidget sich möglichst als Wrapper für die native GUI des Betriebssystems darzustellen,​ d.h. wxWidgets benutzt keine eigene Benutzeroberfläche,​ sondern benutzt die des Betriebssystems,​ auf dem das Programm kompiliert und ausgeführt wird. wxWidgets ist eine quelloffene Bibliothek und steht unter einer leicht modifizierten LGPL-Lizenz die es erlaubt, die Bibliothek für proprietäre und freie Anwendungen benutzen zu können. Beispiele für Programme, die mit wxWidgets erstellt worden, sind der Audioeditor [[http://​audacity.sf.net|Audacity]] oder die freie Entwicklungsumgebung [[http://​codeblocks.org|Code::​Blocks]]. Auch für wxWidgets existieren Bindings an andere Programmiersprachen,​ darunter Python (wxPython), Perl (wxPerl) und Ruby (wxRuby).
  
   * Wird verwendet von: Code::​Blocks,​ Audadcity, Bittorrent   * Wird verwendet von: Code::​Blocks,​ Audadcity, Bittorrent
   * Noch kein wirkliches [[gui:​wx:​start|wxWidgets-Tutorial]]   * Noch kein wirkliches [[gui:​wx:​start|wxWidgets-Tutorial]]
   ​   ​
 +
 ===== Zeichnen von GUIs ===== ===== Zeichnen von GUIs =====
 GUIs können aber auch mit Zeichen-Tools erstellt und in ein Programm eingebunden werden. Qt zum Beispiel liefert dafür das Programm "​Qt-Designer"​ mit. \\  GUIs können aber auch mit Zeichen-Tools erstellt und in ein Programm eingebunden werden. Qt zum Beispiel liefert dafür das Programm "​Qt-Designer"​ mit. \\ 
 \\  \\ 
-{{user:dani93:​contest:​firstbirthday:​qt_designer.jpg|Qt-Designer}}+{{user:nufan:​contest:​firstbirthday:​qt_designer.jpg|Qt-Designer}} 
 + 
 +===== GUI-Designer ===== 
 + 
 +  * [[Glade]] GTK+ (Linux) (Win) (Mac) 
 +  * [[frameworks:​qt:​tools:​designer|Qt-Designer]] Qt (Linux) (Win) (Mac) 
  
 ---- ----
 [[http://​forum.proggen.org/​viewtopic.php?​f=39&​t=855|Diskussion]] [[http://​forum.proggen.org/​viewtopic.php?​f=39&​t=855|Diskussion]]
 +
 +