GUI's

  • Themenstarter Themenstarter Nadriel
  • Beginndatum Beginndatum
N

Nadriel

Grüß Euch!

Ich hab da eine kleine Frage bezüglich GUI's in C/C++. Prinzipiell stellt sich mir die Frage wie stelle ich das überhaupt an in C++, beziehungsweise gibt es da bereits vorhandene Tutorials mit denen ich mich dort einarbeiten kann? Ich kann sagen, dass mir die Basics bereits bekannt sind, und auch mehr, also dürfte es kein Problem sein, wenn es auch ein etwas komplexeres Tutorial oder dergleichen ist. Das ganze hatte ich bereits mehrmals gegoogelt, bin aber nur auf GUI Toolkits gestoßen, da ich diese GUI aber per "Hand" programmieren möchte und nicht durch einfaches Drag&Drop, eben diese Frage.

Kann mir da jemand helfen?
Danke im Vorraus.

Mit freundlichen Grüßen Nadriel
 
Grüß Euch!

Ich hab da eine kleine Frage bezüglich GUI's in C/C++. Prinzipiell stellt sich mir die Frage wie stelle ich das überhaupt an in C++, beziehungsweise gibt es da bereits vorhandene Tutorials mit denen ich mich dort einarbeiten kann? Ich kann sagen, dass mir die Basics bereits bekannt sind, und auch mehr, also dürfte es kein Problem sein, wenn es auch ein etwas komplexeres Tutorial oder dergleichen ist. Das ganze hatte ich bereits mehrmals gegoogelt, bin aber nur auf GUI Toolkits gestoßen, da ich diese GUI aber per "Hand" programmieren möchte und nicht durch einfaches Drag&Drop, eben diese Frage.

Kann mir da jemand helfen?
Danke im Vorraus.

Mit freundlichen Grüßen Nadriel

Also mit Standard-C++ kann man keine Oberflächen/GUI's schreiben. Entweder man greift unter Windows auf die WinAPI (oder unter anderen Plattformen auf ihre eigene API), oder für mehrere Plattformen (Betriebssysteme!) Qt, GTK. Bei der WinAPI greift man hierzu auf die C-Schnittstellen des Windows-Betriebssytems zu, dies kann besonders am anfang ziemlich viel Nerven und Geduld fordern (allein schon wegen der 100.000 verschiedenen Datentypen und den ganzen Konvertierungen!). Die GUI-Toolkits wie Qt und GTK ermöglichen dir durch einfache und sehr gut Dokumentierte API (mir persönlich gefällt die von Qt am allerbesten und ausführlichsten!) für einige mehrere Plattformen wie z. B. Windows, Linux, Max, Symbian/Maego (Handys), Windows Mobile etc. graphischen Oberflächen zu erstellen.

Nur damit du hier nichts falsch verstehst, du kannst auch mit den GUI-Toolkits komplett alles im Quelltext machen und diese per Hand programmieren. Diese Toolkits bieten neben einer sehr schönen sauberen dokumentierten API auch direkt passende Datentypen mit, damit man fast garnichts mehr konvertieren muss und gleichzeitig kannst du dein Quelltext in 95-99% der Fälle 1:1 auf anderen Betriebssytemen kompilieren ohne auch nur eine einzige Zeile im Quelltext anpassen zu müssen. Das per Drag & Drop bieten diese meistens durch Ihre Designer an, musst du aber nicht benutzen.

Hier eine Seite zu der WinAPI mit sehr ausführlichen Tutorials:

http://www.winprog.org/tutorial/ (links im Baum unter "Basics")

Falls es dich interessiert so kann man mit C++/Qt ein Fenster mit einer Schaltfläche programmieren mit Qt, in der sich die Anwendung beendet wenn man auf die Schaltfläche klickt:

MeinFenster.h
C++:
#ifndef MEINFENSTER
#define MEINFESTER

#include <QWidget>
#include <QPushbutton>

class MeinFenster: public QWidget
{
    Q_OBJECT
public:
   MeinFenster(QWidget *aWidget = 0);

private:
   QPushButton m_btnOk;
};

#endif

MeinFenster.cpp
C++:
#include "MeinFenster.h"

#include <QApplication>

MeinFenster::MeinFenster(QWidget *aWidget): QWidget(aWidget), m_btnOk(this)
{
   m_btnOk.setText("OK");
   connect(&m_btnOk, SIGNAL(clicked()), qApp, SLOT(quit()));
}

Main.cpp
C++:
#include <QApplication>

#include "MeinFenster.h"

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);

   MeinFenster wid;

   wid.show();

   return app.exec();
}

MeinFenster.pro
C++:
TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += MeinFenster.h
SOURCES += Main.cpp MeinFenster.cpp

Gruß
RudolfG
 
Hallo RudolfG,

ich danke dir für die äußerst ausführliche und leicht verständliche Antwort.

MfG Nadriel
 
Zurück