Thread View: pl.comp.lang.python
9 messages
9 total messages
Started by BagMan
Sun, 15 Aug 2010 18:34
Wątki w GTK pod Windows
Author: BagMan
Date: Sun, 15 Aug 2010 18:34
Date: Sun, 15 Aug 2010 18:34
8 lines
958 bytes
958 bytes
Czy wam działają? U mnie za każdym razem jak wykonuje się gtk.gdk.threads_init() to wiesza mi całą aplikacje :( pozdrawiam BagMan
Re: Wątki w GTK pod Windows
Author: BagMan
Date: Wed, 15 Sep 2010 19:50
Date: Wed, 15 Sep 2010 19:50
14 lines
1422 bytes
1422 bytes
Z wątkami właśnie skończyłem wojować w GTK. Pod Windows nie działa :P GTK nie lubi jak przeprowadzasz operacje na elementach graficznych z innych wątków. Polecam zastosować, co sam zrobiłem, do tego sygnały gobject. Działają wszędzie i są bezpieczne dla GTK pod Windows. Jeżeli się mylę to proszę o jakiś tutorial w tej sprawie ja się doczytałem że nie działa i jedyne rozwiązanie to gobject. pozdrawiam BagMan
Re: Wątki w GTK pod Windows
Author: BagMan
Date: Wed, 15 Sep 2010 19:52
Date: Wed, 15 Sep 2010 19:52
1 lines
1059 bytes
1059 bytes
O w morde jeża! sam se odpowiedziałem, pora iść spać :P
Re: Wątki w GTK pod Windows
Author: Wojciech Muła
Date: Wed, 15 Sep 2010 19:59
Date: Wed, 15 Sep 2010 19:59
10 lines
1155 bytes
1155 bytes
BagMan <bagman@poczta.fm> wrote: > Z wątkami właśnie skończyłem wojować w GTK. Pod Windows nie działa :P > > GTK nie lubi jak przeprowadzasz operacje na elementach graficznych z > innych wątków. W ogóle chyba żaden powszechny system GUI nie jest threadsafe. w.
Re: Wątki w GTK pod Windows
Author: BagMan
Date: Thu, 16 Sep 2010 20:56
Date: Thu, 16 Sep 2010 20:56
15 lines
1649 bytes
1649 bytes
Problem w tym (dla windowsowców) że jest od groma przykładów jak zrobić aplikacje na threadach pod PyGTK. Człowiek siedzi i dłubie je tydzień żeby się potem doczytać w bugtraqu z 2007r że na Windows nie działa..... Grr!!!! Jedyne rozwiązanie jakie znalazłem to emisja i sygnały goobject ale z to jest mało poręczne bo trzeba je deklarować i pilnować obsługi w poszczególnych klasach. Da się to zrobić, w końcu tak zrobiłem, ale ani to łatwe ani eleganckie ani przyjemne nie jest. pozdrawiam BagMan
Re: Wątki w GTK pod Windows
Author: Marcin
Date: Mon, 20 Sep 2010 19:09
Date: Mon, 20 Sep 2010 19:09
26 lines
1917 bytes
1917 bytes
Witam, Z tego co ja pamiętam to zasada jest taka, operacje na GUI wykonuje główny wątek, a resztę (logika) można przerzucić do wątków potomnych. A jeśli zachodzi potrzeba "interacji" z GUI w wątkach potomnych, to zawsze można coś wrzucić za pomocą: http://library.gnome.org/devel/pygobject/stable/glib-functions.html#function-glib--idle-add Pozdrawiam, Marcin > Problem w tym (dla windowsowców) że jest od groma przykładów jak zrobić > aplikacje na threadach pod PyGTK. Człowiek siedzi i dłubie je tydzień > żeby się potem doczytać w bugtraqu z 2007r że na Windows nie działa..... > Grr!!!! > > Jedyne rozwiązanie jakie znalazłem to emisja i sygnały goobject ale z to > jest mało poręczne bo trzeba je deklarować i pilnować obsługi w > poszczególnych klasach. > > Da się to zrobić, w końcu tak zrobiłem, ale ani to łatwe ani eleganckie > ani przyjemne nie jest. > > pozdrawiam > > BagMan
Re: Wątki w GTK pod Windows
Author: BagMan
Date: Tue, 21 Sep 2010 18:39
Date: Tue, 21 Sep 2010 18:39
13 lines
1606 bytes
1606 bytes
Tu chodziło o działanie w drugą stronę, np obsługa paska postępu z procesu z innego wątku. Zmiana wartości w pasku bezpośrednio z innego wątku powoduje wykrzaczenie programu pod windą) Jedne dość stabilne rozwiązanie jakie znalazłem to emisja sygnału z wątku i obsługa go poprzez złapanie sygnału w klasie graficznej. Jeżeli masz inne (prostsze) rozwiązanie to proszę pomoc, a najlepiej działający pod windą przykład. pozdrawiam BagMan
Re: Wątki w GTK pod Windows
Author: Marcin
Date: Tue, 21 Sep 2010 19:06
Date: Tue, 21 Sep 2010 19:06
24 lines
1900 bytes
1900 bytes
Cześć, > Tu chodziło o działanie w drugą stronę, np obsługa paska postępu z > procesu z innego wątku. Zmiana wartości w pasku bezpośrednio z innego > wątku powoduje wykrzaczenie programu pod windą) No właśnie o to samo mi chodziło. Z tego "innego" wątku wrzucasz (idle_add()) do głównej pętli zdarzeń GTK+ funkcję np. updatującą pasek postępu i wszystko gra. Zlecasz robotę w innym wątku, a cała robota na GUI faktycznie jest wykonywana przez główny wątek. Działa jak trzeba i również pod Windą... Marcin > Jedne dość stabilne rozwiązanie jakie znalazłem to emisja sygnału z > wątku i obsługa go poprzez złapanie sygnału w klasie graficznej. > > Jeżeli masz inne (prostsze) rozwiązanie to proszę pomoc, a najlepiej > działający pod windą przykład. > > pozdrawiam > > BagMan
Re: Wątki w GTK pod Windows
Author: BagMan
Date: Tue, 21 Sep 2010 19:45
Date: Tue, 21 Sep 2010 19:45
6 lines
1363 bytes
1363 bytes
Poproszę o działający przykładzik. Trochę już z tym problemem czasu straciłem i z chęcią obejrzałbym coś co na pewno działa pod łindołz. pozdrawiam BagMan
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads