🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#27626
Author: BagMan
Date: Sun, 15 Aug 2010 18:34
8 lines
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
#27627
Author: BagMan
Date: Wed, 15 Sep 2010 19:50
14 lines
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
#27628
Author: BagMan
Date: Wed, 15 Sep 2010 19:52
1 lines
1059 bytes
O w morde jeża! sam se odpowiedziałem, pora iść spać :P
Re: Wątki w GTK pod Windows
#27629
Author: Wojciech Muła
Date: Wed, 15 Sep 2010 19:59
10 lines
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
#27630
Author: BagMan
Date: Thu, 16 Sep 2010 20:56
15 lines
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
#27631
Author: Marcin
Date: Mon, 20 Sep 2010 19:09
26 lines
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
#27632
Author: BagMan
Date: Tue, 21 Sep 2010 18:39
13 lines
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
#27633
Author: Marcin
Date: Tue, 21 Sep 2010 19:06
24 lines
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
#27634
Author: BagMan
Date: Tue, 21 Sep 2010 19:45
6 lines
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