wie "greife" ich strings bei gtk ?
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
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
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. <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">( 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;
}
#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;
}
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 <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
gruss
boris
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 <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
gruss
boris
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. <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">
Re: wie
oje, das tut mir echt leid. aber irgendwie sollte man ja alles positiv sehen <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">. 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
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
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 = Also deine Zeile sieh jetzt so aus und funz nicht?
system("linuxsms -name:boris -sms:%s", buf );
Re: wie
noch ne ergänzung: habs hinbekommen <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
gruss
boris
gruss
boris