Portál AbcLinuxu, 6. května 2025 14:55
Bože, už jste někdy zkoušeli pracovat s vlákny a GTK najednou? Nejde to do sebe. Ačkoliv je glib "thread safe", u GTK tomu tak není. Před jakoukoliv manipulací s widgetem musíte zavolat gdk_threads_enter()
a po dokončení manipulace gdk_flush()
a gdk_threads_leave()
. A do toho ještě signály ... V těch od glib se to volat musí, ale v těch od gtk ne.
Proč se o to nepostará samo GTK, tak jako je tomu třeba u Qt, WinAPI a jánevímkdeještě.
Bože, jak mam naprogramovat kvalitní commander bez podpory (nebo s debilní podporou) vláken.
Tiskni
Sdílej:
invokeLater()
nebo invokeAndWait()
. Má to logiku, nemusí se pak nic zbytečně zamykat, není tedy režie navíc.
Bože, jak mam naprogramovat kvalitní commander bez podpory (nebo s debilní podporou) vláken.Vykašlat se na celé GTK+ a začít s Qt 4. Taky jsem dělal v GTK+ a GTKmm, ale jakmile jsem poznal Qt, tak už si na GTK+ ani nevzpomenu - je to neuvěřitelná úleva. R.I.P. GTK...
Je dobré nejprve věci pochopit a teprve poté je odsuzovat a samozřejmě veškerou kritiku podložit argumenty, za kterými si můžete stát
GTK je moc chytře udělané a nevyvíjí ho žádní žabaři. To samé platí o Qt. Tyto dva toolkity jsou si +- naprosto rovny
Mě to vyhovuje Dříve jsem používal také
enter/leave
, ale pak jsem se dočetl, že toto řešení nedoporučují ať použiju raději:
gobject.idle_add(tlacitko_BT.set_sensitive, True)
Když to najdu pošlu sem link. Každopádně tenhle druhý způsob se mi líbí víc.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.