Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Firzen 14 Června 2008, 15:52:53
-
Dobrý den :)
začínám v GTK a chci aby se na tlačítko(nebo do textu) vypsala proměnná nebo obsah pole, problém je, že nevím jak to provést - na tisíci stránkách knihy "Mistrovství v C++" je totiž popsán pouze objekt cout a cerr, kde se to dělá takto:
cout << "blabla" << promenna_nebo_pole << "dalsi bla bla";
jenže něco ve smyslu:
button = gtk_button_new_with_label ("Text na tlacitku cislo " << cislo);
v GTK prostě nefunguje... Nevíte někdo, jak to udělat? Moc bych to potřeboval.
-
Dobrý den :)
začínám v GTK a chci aby se na tlačítko(nebo do textu) vypsala proměnná nebo obsah pole, problém je, že nevím jak to provést - na tisíci stránkách knihy "Mistrovství v C++" je totiž popsán pouze objekt cout a cerr, kde se to dělá takto:
cout << "blabla" << promenna_nebo_pole << "dalsi bla bla";
jenže něco ve smyslu:
button = gtk_button_new_with_label ("Text na tlacitku cislo " << cislo);
v GTK prostě nefunguje... Nevíte někdo, jak to udělat? Moc bych to potřeboval.
No budete mít objekt na tu určitou komponentu (TextBox, Button) a ten object bude mít zajisté nějakou metodu něco jako SetText a parametr bude object řetězce ;)
-
Omlouvám se, ale moc jsem to nepochopil; nebyl by nějaký příklad? (z toho to pochopím nejlépe..)
-
button = gtk_button_new_with_label ("Text na tlacitku cislo " + cislo)
tohle by nefungovalo?
-
button = gtk_button_new_with_label ("Text na tlacitku cislo " + cislo)
tohle by nefungovalo?
No, funguje to, ale dělá to něco jiného, než jsem chtěl :D Tohle totiž skryje od začátku tlačítka takový počet písmen(na něm napsaných), kolik určuje proměnná(třeba to "cislo").. pěkné, ale já potřebuji, aby když dám hodnotu třeba int cislo=4;, tak abych mohl určit kam se na tlačítko hodnota proměnné "cislo" vypíše a na tlačítku by potom bylo třeba "Linux 4ever", chápete ne? (to právě nevím jak ::))
-
No, pokud by to nemuselo být C++, ale jenom C, taky by mohlo zabrat něco jako:
button = gtk_button_new_with_label(g_strdup_printf("text na tlačítku - %d", cislo));
-
tak jeste udelat dalsi promenou, nazvanou treba popisek
popisek = "Text na tlacitku" + cislo
button = gtk_button_new_with_label (popisek)
-
No, pokud by to nemuselo být C++, ale jenom C, taky by mohlo zabrat něco jako:
button = gtk_button_new_with_label(g_strdup_printf("text na tlačítku - %d", cislo));
Super :) tohle vážně funguje, nikde v dokumentaci jsem to nenašel(nechápu, jak mohli zapomenout na tak základní věc..) díky moc ;)
tak jeste udelat dalsi promenou, nazvanou treba popisek
popisek = "Text na tlacitku" + cislo
button = gtk_button_new_with_label (popisek)
Tohle se bohužel kompilátoru nelíbí..
-
tak jeste udelat dalsi promenou, nazvanou treba popisek
popisek = "Text na tlacitku" + cislo
button = gtk_button_new_with_label (popisek)
Tohle se bohužel kompilátoru nelíbí..
[/quote]
tipuju, že to bude tím, že jedna z těch proměnejch je textová a druhá číselná... musíš to číslo nějak převýst na text...
-
Pro převod čísel na text už jsem si dávno napsal hlavičkovej soubor.. jenže kompilátor to nedovolí ani když je všechno jen text.., ale to nevadí - řešení už mám :) (samozřejmě děkuji za pomoc ;))
-
tak sem napiš jak sji to vyřešil... pro případné další zájemce se stejným problémem ;)
-
No vyřešil jsem to následovně:
int cislo=7;
button = gtk_button_new_with_label(g_strdup_printf("Tlačítko - %d", cislo));
--> Tím dostaneme na tlačítku text: Tlačítko - 7 (za %d se dosadí proměnná za čárkou, zde proměnná cislo)
a ještě jsem pokusem zjistil, že %s (napadlo mě, že to bude zkratka String) do textu dovede vložit i text z pole:
char text[]="je super";
button = gtk_button_new_with_label(g_strdup_printf("Linux %s OS", text));
--> Toto nám na tlačítko vypíše: Linux je super OS
Jinak to samozřejmě neplatí jen pro tlačítka ale i pro normální texty např. v dialogových oknech apt.. :)
-
Pokud to nechceš všechno hledat metodou pokus ‒ omyl, tak všechny formátovací volby se dají získat příkazem man 3 printf ;) (vyžaduje balík manpages-dev).