Hallo Community,
ich habe keine Ahnung wie viele Leute hier noch aktiv sind und ob mir jemand helfen kann, dennoch stell ich mal meine Anfrage.
Ich befinde mich aktuell im 1. Semester meines Med. Informatik Studiums und bin heute auf eine Schwierigkeit während des Programmierens gekommen. Ich habe mit C und GTK ein Fenster programmiert mit 2 Eingabe Felder, 1 Button und einem Label für das Ergebnis. Wenn ich auf den Button klicke, sollen die Zahlen aus Feld 1 und Feld 2 addiert werden und das Ergebnis dann in das Label eingetragen werden.
Aktuell sieht mein Code so aus:
- #include <gtk/gtk.h>
- #include <stdlib.h>
- #include <stdio.h>
- typedef struct _gui {
- GtkWidget* window;
- GtkWidget* table;
- GtkWidget* label1;
- GtkWidget* label2;
- GtkWidget* label3;
- GtkWidget* entry1;
- GtkWidget* entry2;
- GtkWidget* label4;
- GtkWidget* button1;
- } GuiModel;
- // Creating Functions
- void on_destroy(GtkWidget *src, gpointer data){
- gtk_main_quit();
- }
- void on_click_add(GtkWidget *src, gpointer data){
- GuiModel *m = (GtkWidget*)data;
- char* Summand1 = gtk_entry_get_text(GTK_ENTRY(m->entry1));
- char* Summand2 = gtk_entry_get_text(GTK_ENTRY(m->entry2));
- gtk_label_set_text(GTK_LABEL(m->label4), Summand1);
- }
- int main(int argc, char* argv[]){
- gtk_init(&argc, &argv);
- // Initializing
- GuiModel m;
- m.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- m.table = gtk_table_new(4,2,TRUE);
- m.label1 = gtk_label_new("Summand 1:");
- m.label2 = gtk_label_new("Summand 2:");
- m.label3 = gtk_label_new("Ergebnis :");
- m.label4 = gtk_label_new("");
- m.entry1 = gtk_entry_new();
- m.entry2 = gtk_entry_new();
- m.button1 = gtk_button_new_with_label("Berechnen");
- // Customizing
- gtk_window_set_title(GTK_WINDOW(m.window), "Aufgabe 2");
- gtk_window_set_default_size(GTK_WINDOW(m.window), 100,100);
- // Connecting Signals
- g_signal_connect(m.window, "destroy", G_CALLBACK(on_destroy), NULL);
- g_signal_connect(m.button1, "clicked", G_CALLBACK(on_click_add),&m);
- // Visualizing
- gtk_container_add(GTK_CONTAINER(m.window), m.table);
- gtk_table_attach_defaults(GTK_TABLE(m.table), m.label1, 0, 1, 0, 1);
- gtk_table_attach_defaults(GTK_TABLE(m.table), m.label2, 0, 1, 1, 2);
- gtk_table_attach_defaults(GTK_TABLE(m.table), m.label3, 0, 1, 2, 3);
- gtk_table_attach_defaults(GTK_TABLE(m.table), m.entry1, 1, 2, 0, 1);
- gtk_table_attach_defaults(GTK_TABLE(m.table), m.entry2, 1, 2, 1, 2);
- gtk_table_attach_defaults(GTK_TABLE(m.table), m.label4, 1, 2, 2, 3);
- gtk_table_attach_defaults(GTK_TABLE(m.table), m.button1, 0, 2, 3, 4);
- gtk_widget_show(m.label1);
- gtk_widget_show(m.label2);
- gtk_widget_show(m.label3);
- gtk_widget_show(m.entry1);
- gtk_widget_show(m.entry2);
- gtk_widget_show(m.label4);
- gtk_widget_show(m.button1);
- gtk_widget_show(m.table);
- gtk_widget_show(m.window);
- gtk_main();
- return 0;
- }
Jedoch funktioniert meine on_click_add Funktion nicht richtig (Im Code ist es eh falsch). Wie kann ich zwei char Zeiger in Integer umwandeln, sodass ich damit rechnen kann und dann wieder in einen char Zeiger umwandeln, dass ich den Ausgeben kann?
Viele Grüße
v0lt