GTK+

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » Mi Dez 31, 2008 1:23 pm

Nene das mit dem return wäre die nächste Frage gewesen.
Ich hab ja dann weiter oben den return-Wert in eine if-Schleife gesteckt.
Die Zählvariable (i) muss doch dann auch als "static int" deklariert werden, oder?


MfG Fuss

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » So Jan 04, 2009 9:27 pm

So einfach mal selbst ausprobiert.
Ist ja auch logisch das die Variable i static int sein muss, weil sonst ja der Wert nach jedem Funktionsaufruf wieder 0 ist.

ich überlege gerade wie ich es schaffe etwas schwierigere Layouts mit Boxen und Co zu entwerfen. Mal sehen wie weit ich das schaffe.


MfG Fuss, der sich wundert warum in den letzten paar Tagen so wenig im Forum los war oder kam mir das nur so vor?

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: GTK+

Beitrag von Kerli » Mo Jan 05, 2009 12:41 am

+Fuss+ hat geschrieben:ich überlege gerade wie ich es schaffe etwas schwierigere Layouts mit Boxen und Co zu entwerfen. Mal sehen wie weit ich das schaffe.
Lass deiner Kreativität freien Lauf. Ich hab mit solchen Elementen sogar schon einmal ein Ping-Pong geschrieben :)
+Fuss+ hat geschrieben:MfG Fuss, der sich wundert warum in den letzten paar Tagen so wenig im Forum los war oder kam mir das nur so vor?
Nein, es war wirklich recht wenig los in den letzten Tagen, aber wahrscheinlich liegt das einfach nur an den Ferien, die jetzt ja eh schon fast wieder vorbei sind...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK+

Beitrag von Xin » Mo Jan 05, 2009 1:49 am

Kerli hat geschrieben:Lass deiner Kreativität freien Lauf. Ich hab mit solchen Elementen sogar schon einmal ein Ping-Pong geschrieben :)
Wie das!?
Kerli hat geschrieben:
+Fuss+ hat geschrieben:MfG Fuss, der sich wundert warum in den letzten paar Tagen so wenig im Forum los war oder kam mir das nur so vor?
Nein, es war wirklich recht wenig los in den letzten Tagen, aber wahrscheinlich liegt das einfach nur an den Ferien, die jetzt ja eh schon fast wieder vorbei sind...
Wenn ich wieder in D'land bin, geht das Tutorialschreiben weiter. Dann gibt's wieder viel zu diskutieren ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: GTK+

Beitrag von Kerli » Mo Jan 05, 2009 2:06 am

Xin hat geschrieben:
Kerli hat geschrieben:Lass deiner Kreativität freien Lauf. Ich hab mit solchen Elementen sogar schon einmal ein Ping-Pong geschrieben :)
Wie das!?
Das war zwar nicht mit Gtk sondern mit Visual Basic, aber ich hab da einfach eingefärbte Labels ohne Text durch die Gegend fliegen lassen, und die Blöcke waren ebenfalls Labels die bei einem Treffer entfernt wurden.

Du kannst es dir sogar noch von meiner alten Homepage herunterladen. Es wird nur etwas Werbung eingeblendet, da die Seite auf einem Server eines Freehosters liegt ;)
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » Mo Jan 05, 2009 11:39 am

Schönes Spiel...

Aber mir recht erstmal ein Layout mit 5 vertikalen Boxen un darin jeweils 2 horizontale. Damit ich am Schluss 10 Boxen hab (5 mal 2)

Kerli hat geschrieben:Nein, es war wirklich recht wenig los in den letzten Tagen, aber wahrscheinlich liegt das einfach nur an den Ferien, die jetzt ja eh schon fast wieder vorbei sind...
Ich "darf" Donnerstag wieder. Ich freu mich richtig drauf! <- ACHTUNG Ironie
5 km Luftlinie und 1 Stunde hin und zurück im Bus. In den Bus dürfen rechtlich gesehen 90 Personen. Wir sind 88 un es dauert ca 10 min bis alle im Bus sind. Dann schreit die Busfahrerin noch das wir durchgehen sollen, fragt sich nur wohin... Ein ganz normaler Wochentag halt :x

MfG Fuss

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » Mi Jan 07, 2009 12:10 pm

So,
für das was ich machen wollte brauch ich eigentlich nur eine Tabelle und die habe ich auch gemacht.

Es passiert zwar noch nichts, wenn man auf einen Button klickt (außer der "Beenden"-Button), aber ich bin trotzdem schon zufrieden, dass ich das hier geschafft habe:

Code: Alles auswählen

#include <gtk/gtk.h>

/*main-Funktion starten*/
int main(int argc, char **argv)
{
  /*Widgets erstellen*/
  GtkWidget *fenster;
  GtkWidget *tabelle;
  GtkWidget *button_plus, *button_minus, *button_mal, *button_geteilt;
  GtkWidget *button_pow, *button_wurzel, *button_flaeche, *button_volumen, *button_ende;
 
  /*GTK initialisieren*/
  gtk_init(&argc, &argv);
 
  /*Fenster zuweisen*/
  fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 
  /*Tabelle zuweisen*/
  tabelle = gtk_table_new(6,2,TRUE);
 
  /*Buttons zuweisen*/
  button_plus = gtk_button_new_with_label("Addieren");
  button_minus = gtk_button_new_with_label("Subtrahieren");
  button_mal = gtk_button_new_with_label("Multiplizieren");
  button_geteilt = gtk_button_new_with_label("Dividieren");
  button_pow = gtk_button_new_with_label("Potenzieren"); 
  button_wurzel = gtk_button_new_with_label("Wurzel ziehen");
  button_flaeche = gtk_button_new_with_label("Fläche berechnen"); 
  button_volumen = gtk_button_new_with_label("Volumen berechnen"); 
  button_ende = gtk_button_new_with_label("Beenden"); 

  /*Tabelle anordnen*/
  gtk_table_attach(GTK_TABLE(tabelle),button_plus, 0,1, 0,1, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_minus, 1,2, 0,1, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_mal, 0,1, 1,2, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_geteilt, 1,2, 1,2, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_pow, 0,1, 2,3, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_wurzel, 1,2, 2,3, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_flaeche, 0,1, 3,4, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_volumen, 1,2, 3,4, GTK_FILL, GTK_FILL, 0,0);
  gtk_table_attach(GTK_TABLE(tabelle),button_ende, 1,2, 5,6, GTK_FILL, GTK_FILL, 0,0);

  /*Signal verbinden*/
  g_signal_connect(G_OBJECT(fenster), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
  g_signal_connect(G_OBJECT(button_ende), "clicked", G_CALLBACK(gtk_main_quit), NULL);
 
  /*Fenstertitel setzen*/
  gtk_window_set_title(GTK_WINDOW(fenster), "Der Rechner");
  /*Fensterposition*/
  gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);
  gtk_container_set_border_width(GTK_CONTAINER(fenster),15); 
 
  /*Container hinzufügen*/
  gtk_container_add(GTK_CONTAINER(fenster),tabelle);

  /*Anzeigen*/
  gtk_widget_show_all(fenster);

  gtk_main();

  return 0;
}
 
Ich warte auf Verbesserungsvorschläge für den Code und für das Aussehen. ;)
wer möchte kann auch mal kompilieren (gcc code.c `pkg-config gtk+-2.0 --cflags --libs`)


MfG Fuss

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » Mo Jan 12, 2009 6:19 pm

Weiß jemand vielleicht, wie ich die Eingabe aus einem Eingabefeld in einer Variable (int/float) speichern kann und wie ich den Stand dieser Variable auf einem Label anzeige?

also

Code: Alles auswählen

printf ("%d", integer);
aber halt für ein Label in GTK+

MfG Fuss

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: GTK+

Beitrag von Kerli » Di Jan 13, 2009 1:09 pm

+Fuss+ hat geschrieben:Weiß jemand vielleicht, wie ich die Eingabe aus einem Eingabefeld in einer Variable (int/float) speichern kann und wie ich den Stand dieser Variable auf einem Label anzeige?
Ich kenn mich jetzt nicht so gut aus mit GTK, aber ich würde vermuten, dass es ein Event geben wird wenn sich der Inhalt eines Eingabefeldes ändert. Da brauchst du dann eigentlich nur mehr einen Eventhandler erstellen und registrieren und in dem dann den Text des Labels ändern, was wahrscheinlich gleich wie bei der Beschriftung des Buttons funktionieren dürfte.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » Di Jan 13, 2009 4:09 pm

das Problem ist eigentlich, dass man ja normalerweise mit gchar arbeitet und ich aber einen int/float brauche, weil ich mit einem gchar schlecht Funktionen wie "sqrt" und "pow" tec. auführen kann. Ich probiere das mal mit dem Event. Danke für den Tipp.

MfG Fuss

Antworten