.[ ČeskéHry.cz ].
GTK

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Diego



Založen: 03. 12. 2007
Příspěvky: 2

PříspěvekZaslal: 3. prosinec 2007, 11:24:31    Předmět: GTK Odpovědět s citátem

potreboval bych poradit s GTK. Prohlizel sem si tutorialy ale ty me nak moc nenadchly. Seznam fci a co delaj si zvladam asi najit ale nevim jak smatlat to prostredi aby to ve zdrojaku melo nakej poradek, nastavovani velikosti atd... proste siknul by se mi tutorial nebo okomentovanej zdrojak kde je videt jak to spravne psat.. dost me matou i funkce ktery akorat volaj jinou fci a nic jinyho Smile ale to vem cert Smile

momentalne sem se snazil udelat okno [done], box s tlacitkama [semidone].. jako vytvorit widget zvladnu, hodit ho do containeru taky ale zaridit aby mel tu spravnou velikost a nepretejkali mi texty atd to uz je neco jinyho... zacina me to stvat vic nez xhtml Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ladik-BigBoss



Založen: 28. 07. 2007
Příspěvky: 162

PříspěvekZaslal: 12. prosinec 2007, 09:44:04    Předmět: Odpovědět s citátem

ja na to pouzivam Glade. vlastnosti GUI si naklikas a ulozis do XML a pak dopises callbacky, pripadne v kodu vytvoris objekty jako seznamy... nacteni GUI se provadi dynamicky za behu programu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
byvoko



Založen: 24. 04. 2012
Příspěvky: 3

PříspěvekZaslal: 24. duben 2012, 15:41:35    Předmět: Odpovědět s citátem

Ahoj, mam problém s GTK a už nevim co s tim. Dělám program, kterej čte, ve vlastním vlákně, data ze seriáku (konkrétně z GPSky) a pak je zapisuju do textovejch polí. Jenomže tady nastává problém s refrešem okna. Na netu jsem našel tohle:

while(gtk_events_pending()){gtk_main_iteration_do(true);}

což mě ale do konzole vypisuje warning:

Glib-WARNING **: g_main_context_prepare(): main loop alredy active in another thread

a po nějaký době program spadne, popřípadě když vyvolám nějakou událost, jako kliknutí na tlačítko posunutí s oknem,....

Nemá s tim někdo zkušenosti?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Crypton



Založen: 14. 05. 2009
Příspěvky: 306
Bydliště: The Void

PříspěvekZaslal: 24. duben 2012, 16:24:56    Předmět: Odpovědět s citátem

Číšníku! Prosil bych jeden středně propečený BAN. Platit bude pan byvoko. Twisted Evil
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
byvoko



Založen: 24. 04. 2012
Příspěvky: 3

PříspěvekZaslal: 24. duben 2012, 16:40:59    Předmět: Odpovědět s citátem

Co jsem proved tak hroznýho? Shocked

Nemam moc zkušenosti s vláknama a gtk, takže je možný že jsem se zeptal na kravinu. Jako chybu bych viděl v tom že tam chybí zámek (mutex). Kdybych obě fce dělal já, tak to tam narvu, ale gtk_main spustim a do něj se nedostanu ne? Budu rád klidně i za jedno užitečný slovo, google znám Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 24. duben 2012, 17:21:20    Předmět: Odpovědět s citátem

1. nekromancia. posledny post je tu z pred piatich rokov.
2. das otazku do sice suvisiacej temy ale uplne odlisny problem.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ladik-BigBoss



Založen: 28. 07. 2007
Příspěvky: 162

PříspěvekZaslal: 27. duben 2012, 18:26:11    Předmět: Odpovědět s citátem

přestože tu řešíte bany, zkusím odpovědět na co se byvoko ptal:

Přidáš si přes g_idle_add() funkci, kterou bude GTK volat ve svojí gtk_main smyčce, pokud nemá na vyřízení jiné zprávy GUI. V této funkci můžeš manipulovat s widgety (používal jsem to na realtime OpenGL kreslení) a zároveň tam můžeš číst s mutexem data, které updatuješ ve svém vlákně (zase s mutexem).

a vlastně bys to mohl dělat tak, že druhé vlákno nepotřebuješ a budeš
přímo z té funkce číst ze serialu Smile

pseudo kod:
kód:


GPSdata position;

gint gps_gui_update(void *userdata) // pointer predany v druhem argumentu g_idle_add()
{
       position.readSerial()

   gtk_label_set_text(gps_position_label, position.toCString());

   return TRUE; // vola se stale dal
}

// nekde v main() :
g_idle_add(myfunc, NULL); // tady by se elegantne dali predavat data, aby nebyli potreba globalni promenne ci singleton...
gtk_main();

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
byvoko



Založen: 24. 04. 2012
Příspěvky: 3

PříspěvekZaslal: 5. květen 2012, 14:24:13    Předmět: Odpovědět s citátem

Díky moc, konečně něco co funguje.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna