Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
wie "greife" ich strings bei gtk ?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Boris
Gast





BeitragVerfasst am: 01. Okt 2002 22:42   Titel: wie "greife" ich strings bei gtk ?

hallo zusammen

habe an einem skript rumgebastelt:

#include <gtk/gtk.h>

/*Programmende*/
void ende_cb(GtkObject *object)
{
gtk_main_quit();
}


void on_mount_click(GtkObject *object)
{
system("linuxsms -name:boris -sms:\"test\"");
}

int main(int argc, char **argv)
{
GtkWidget *fenster;
GtkWidget *box;
GtkWidget *text;
GtkWidget *button_quit, *button_senden, *button, *button2;




/*Gtk initialisieren*/
gtk_init(&argc, &argv);
/*Ein neues Fenster erstellen*/
fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/*Buttons erstellen*/

button_quit = gtk_button_new_with_label("Ende");
button_senden = gtk_button_new_with_label("Senden");


text = gtk_text_new(NULL, NULL);
gtk_text_set_editable(GTK_TEXT(text),TRUE);

/*Neue Box erstellen*/
box = gtk_vbox_new(FALSE,0);


/*Signale registrieren*/
gtk_signal_connect_object(GTK_OBJECT(button_quit),
"clicked",
GTK_SIGNAL_FUNC(ende_cb), GTK_OBJECT(fenster));
gtk_signal_connect(GTK_OBJECT(button_senden), "clicked",
GTK_SIGNAL_FUNC(on_mount_click), GTK_OBJECT(fenster));


gtk_signal_connect(GTK_OBJECT(fenster), "destroy",
GTK_SIGNAL_FUNC(ende_cb), NULL);


/*Fensterposition*/
gtk_window_set_position(GTK_WINDOW(fenster),GTK_WI
N_POS_CENTER);

gtk_container_set_border_width(GTK_CONTAINER(fenst
er),15);

gtk_box_pack_start(GTK_BOX(box), text, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(box), button_quit, FALSE, FALSE, 10);
gtk_box_pack_start(GTK_BOX(box), button_senden, FALSE, FALSE, 20);

gtk_container_add(GTK_CONTAINER(fenster),box);

/*Zeigs uns.....*/
gtk_widget_show_all(fenster);

gtk_main();

return 0;
}


so, beim drücken auf senden sendet er den text "test" an den eingestellten empfänger. soweit , sogut.

jetzt kann ich ja in dem textfeld text eingeben. ich will diesen text als string "greifen", damit ich ihn als variable an das proggi linuxsms weitergeben kann. mit den "normalen" puts und gets haut das nicht hin:

Bin für jeden tip dankbar.

gruss

boris
 

rübezahl
Gast





BeitragVerfasst am: 02. Okt 2002 1:15   Titel: Re: wie

Ich habe drei Stunden daran gesessen, weil ich zuspäht gemerkt habe, das das kopelieren immer fehlschlägt weil die libs bei mir im Arsch sind. ( O.K. vom Prinzieb geht es jetzt.

#include <gtk/gtk.h>
#include <stdio.h>
GtkWidget *text;


/*Programmende*/
void ende_cb(GtkObject *object)
{
gtk_main_quit();
}


gint on_mount_click (GtkWidget *widget, GdkEvent *ereignis, gpointer datum)
{
gchar *buf;
//system("linuxsms -name:boris -sms:\"test\"");
buf = gtk_editable_get_chars (GTK_EDITABLE (text), 0, -1);

g_print("Eingabe: %s", buf );
return (0);
}

int main(int argc, char **argv)
{
GtkWidget *fenster;
GtkWidget *box;
GtkWidget *button_quit, *button_senden;


/*Gtk initialisieren*/
gtk_init(&argc, &argv);
/*Ein neues Fenster erstellen*/
fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/*Buttons erstellen*/

button_quit = gtk_button_new_with_label("Ende");
button_senden = gtk_button_new_with_label("Senden");


text = gtk_text_new(NULL, NULL);
gtk_text_set_editable(GTK_TEXT(text),TRUE);

/*Neue Box erstellen*/
box = gtk_vbox_new(FALSE,0);


/*Signale registrieren*/
gtk_signal_connect_object(GTK_OBJECT(button_quit), "clicked",
GTK_SIGNAL_FUNC(ende_cb), GTK_OBJECT(fenster));

gtk_signal_connect(GTK_OBJECT(button_senden), "clicked",
GTK_SIGNAL_FUNC(on_mount_click), NULL);


gtk_signal_connect(GTK_OBJECT(fenster), "destroy",
GTK_SIGNAL_FUNC(ende_cb), NULL);


/*Fensterposition*/
//gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);

//gtk_container_set_border_width(GTK_CONTAINER(fenster),15);

gtk_box_pack_start(GTK_BOX(box), text, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(box), button_quit, FALSE, FALSE, 10);
gtk_box_pack_start(GTK_BOX(box), button_senden, FALSE, FALSE, 20);

gtk_container_add(GTK_CONTAINER(fenster),box);

/*Zeigs uns.....*/
gtk_widget_show_all(fenster);

gtk_main();

return 0;
}
 

boris
Gast





BeitragVerfasst am: 02. Okt 2002 9:20   Titel: Re: wie

vielen , vielen dank rübezahl !

oje, soviel stress wollte ich dir garnicht machen. vielleicht tröstet dich der gedanke das du einem noob weitergeholfen hast und ich vielleicht jetzt mal jemand anderem helfen kann.

nochmals vielen dank

gruss

boris
 

rübezahl
Gast





BeitragVerfasst am: 02. Okt 2002 10:23   Titel: Re: wie

Ich habe auch was davon gehabt: 1.) währe ein ähnliches Problem spähter sowieso auf nich zu gekommen (so habe ich dem nur vorgegriffen) und 2.) weis ich jetzt, das in den nächsten Tagen (leider) eine neuinstalation fällig ist. Dann wird meine 1 1/2 Jahre alte Debian 2.2 install durch eine Mandrake ersetzt werden.
 

boris
Gast





BeitragVerfasst am: 02. Okt 2002 11:25   Titel: Re: wie

oje, das tut mir echt leid. aber irgendwie sollte man ja alles positiv sehen . wenn du mir nochmal helfen könntest:

ist es möglich an die von dir geschriebene zeile:

g_print("Eingabe: %s", buf );

den befehl für die RETURN-Taste anzufügen ?
folgendes prob: habe die zeile modifiziert in:

g_print("linuxsms -name:boris -sms:\"%s\"", buf );

so schreibt er sie zwar prima hin, aber die RETURN-Taste "fehlt"

wenn ich g_print durch system ersetze schickt er mir die sms mit dem text "%s" (ohne "" )

wie übergebe ich diese variable ? habe es auchmal mit folgendem probiert:

char cline[128]={'\0'};
sprintf(cline,"wget %s
",buf);
system(cline)

dann kommt undeclare.... beim compilieren ??

gruss

boris
 

Labba
Gast





BeitragVerfasst am: 02. Okt 2002 16:25   Titel: Re: wie

@rübezahl:
apt-get update
apt-get dist-upgrade

fertig is Debian3.0 (woody).
 

boris
Gast





BeitragVerfasst am: 02. Okt 2002 17:32   Titel: Re: wie

ergänzung:

das Return habe ich hingebracht. ist nur nicht das was ich ereichen wollte, denn er "führt" es ja nicht als befehl aus. wäre toll wenn mir gemand mit dem zweiten teil des postings weiterhelfen könnte ( wie krieg ich die variable in den system befehl )

gruss

boris
 

rübezahl
Gast





BeitragVerfasst am: 02. Okt 2002 20:33   Titel: Re: wie

@Labba = Genau das habe ich getam. Das ging aber schief. Dselect brach mit einer unsinnigen Fehlermeldung ab und hinterlies ein angeschlagenes System. Das das System nicht weis, das kaputte Datein hat, kann ich nur noch neu installieren.

@boris = Also deine Zeile sieh jetzt so aus und funz nicht?
system("linuxsms -name:boris -sms:%s", buf );
 

boris
Gast





BeitragVerfasst am: 02. Okt 2002 21:19   Titel: Re: wie

hallo rübezahl,

ja, so sieht sie aus. das programm startet und sendet mir dann als text nicht den eingegebenen (buf) sondern

%s

die normalen parameter für den befehl sind:

linuxsms -name:boris -sms:"text" ( mit "" )

ne idee ?

gruss

boris
 

boris
Gast





BeitragVerfasst am: 02. Okt 2002 21:31   Titel: Re: wie

ergänzung:

es geht auch ohne "" bei -sms:test ( aber nur wenn man 1 wort eingibt, sonst bad options )
 

boris
Gast





BeitragVerfasst am: 04. Okt 2002 10:40   Titel: Re: wie

noch ne ergänzung: habs hinbekommen

gruss

boris
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy