Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: GTK a proměnná v textu [vyřešeno]  (Přečteno 3486 krát)

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
GTK a proměnná v textu [vyřešeno]
« kdy: 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:
Kód: [Vybrat]
cout << "blabla" << promenna_nebo_pole << "dalsi bla bla";jenže něco ve smyslu:
Kód: [Vybrat]
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.
« Poslední změna: 19 Června 2008, 14:24:36 od Firzen »
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Martin - ViPEr*CZ*

Re: GTK a proměnná v textu...
« Odpověď #1 kdy: 14 Června 2008, 16:17:12 »
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:
Kód: [Vybrat]
cout << "blabla" << promenna_nebo_pole << "dalsi bla bla";jenže něco ve smyslu:
Kód: [Vybrat]
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 ;)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: GTK a proměnná v textu...
« Odpověď #2 kdy: 15 Června 2008, 18:00:00 »
Omlouvám se, ale moc jsem to nepochopil; nebyl by nějaký příklad? (z toho to pochopím nejlépe..)
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Tomáš Jančík

  • Stálý člen
  • **
  • Příspěvků: 1179
    • TomášJančík.net
Re: GTK a proměnná v textu...
« Odpověď #3 kdy: 15 Června 2008, 21:10:12 »
button = gtk_button_new_with_label ("Text na tlacitku cislo " + cislo)

tohle by nefungovalo?

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: GTK a proměnná v textu...
« Odpověď #4 kdy: 16 Června 2008, 18:59:47 »
Citace
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 ::))
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

shaman

  • Aktivní člen
  • *
  • Příspěvků: 128
Re: GTK a proměnná v textu...
« Odpověď #5 kdy: 16 Června 2008, 20:22:59 »
No, pokud by to nemuselo být C++, ale jenom C, taky by mohlo zabrat něco jako:
Kód: [Vybrat]
button = gtk_button_new_with_label(g_strdup_printf("text na tlačítku - %d", cislo));

Tomáš Jančík

  • Stálý člen
  • **
  • Příspěvků: 1179
    • TomášJančík.net
Re: GTK a proměnná v textu...
« Odpověď #6 kdy: 16 Června 2008, 21:24:09 »
tak jeste udelat dalsi promenou, nazvanou treba popisek
popisek = "Text na tlacitku" + cislo
button = gtk_button_new_with_label (popisek)

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: GTK a proměnná v textu...
« Odpověď #7 kdy: 17 Června 2008, 18:41:27 »
Citace
No, pokud by to nemuselo být C++, ale jenom C, taky by mohlo zabrat něco jako:
Kód: [Vybrat]
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 ;)

Citace
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í..
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Tomáš Jančík

  • Stálý člen
  • **
  • Příspěvků: 1179
    • TomášJančík.net
Re: GTK a proměnná v textu...
« Odpověď #8 kdy: 17 Června 2008, 22:19:50 »
Citace
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...

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: GTK a proměnná v textu...
« Odpověď #9 kdy: 18 Června 2008, 19:23:16 »
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 ;))
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Tomáš Jančík

  • Stálý člen
  • **
  • Příspěvků: 1179
    • TomášJančík.net
Re: GTK a proměnná v textu
« Odpověď #10 kdy: 18 Června 2008, 20:25:42 »
tak sem napiš jak sji to vyřešil... pro případné další zájemce se stejným problémem ;)

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: GTK a proměnná v textu
« Odpověď #11 kdy: 19 Června 2008, 14:24:25 »
No vyřešil jsem to následovně:

Kód: [Vybrat]
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:
Kód: [Vybrat]
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..  :)
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

shaman

  • Aktivní člen
  • *
  • Příspěvků: 128
Re: GTK a proměnná v textu [vyřešeno]
« Odpověď #12 kdy: 19 Června 2008, 19:09:57 »
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).

 

Provoz zaštiťuje spolek OpenAlt.