Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

python i dynamiczne interface'y albo pygtk i sensowność glade'a?

3 views
Skip to first unread message

Marek Kozlowski

unread,
Dec 10, 2009, 12:36:25 PM12/10/09
to
:-)
Kiedy�, dawno temu napisa�em ma�� aplikacyjk� w pygtk. Interface
tworzony by� w niej w kodzie. Nasz�o mnie, �eby j� "unowocze�ni�" a
zarazem po�wiczy� pos�ugiwanie si� glade i zapisa� interface w XMLu. Hm...

...W kodzie tworzenie interface by�o bardzo czytelne i zajmowa�o oko�o
180 linii. Wygenerowany plik glade dla tego interface ma ~800 linii i
jest kompletnie nieczytelny (r�czne poprawki -- brrr! trudno rozr�ni�
opcje, kt�re ustawi�em umy�lnie od opcji, kt�re ustawi�o domy�lnie
glade). Zamiast w pliku tekstowym (*.py) jest w pliku tekstowym
(*.glade). I te� mo�na go sobie poprawi� w locie, tyle, �e trudniej...

W przypadku j�zyk�w kompilowanych opis interface w osobnym pliku XML
jest sensownym pomys�em. Czy w pythonie ma to jednak jakikolwiek sens?
Czy jest mo�e co� co zyskujemy, a czego nie zauwa�y�em?

Pozdrawiam,
/M

Daniel Mróz

unread,
Dec 10, 2009, 12:58:37 PM12/10/09
to
On 10.12.2009, Marek Kozlowski <kozl...@mini.pw.edu.pl> wrote:
> ...W kodzie tworzenie interface było bardzo czytelne i zajmowało około
> 180 linii. Wygenerowany plik glade dla tego interface ma ~800 linii i
Bo pliki .glade edytuje się w aplikacji, w której możesz sobie ten
interfejs wyklikać, a nie ręcznie.
Glade ma sens w przypadku projektów, gdzie interfejs użytkownika
nie ma jeszcze ostatecznego kształtu i ulega ciągłym zmianom. Takie
rzeczy można szybko i w miarę bezstresowo wykonać w programie (glade2?),
natomiast przy interfejsie wyklepanym w klasach, trzeba przerzucać
całe bloki kodu, zmieniać dowiązania itp. przy każdej zmianie położenia
elementów.
Glade ma też sens dla leniwych ;)


Pozdrawiam
Beorn

--
Daniel 'Beorn' Mróz <be...@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]

Marek Kozlowski

unread,
Dec 10, 2009, 1:25:58 PM12/10/09
to
Daniel Mróz wrote:
> On 10.12.2009, Marek Kozlowski <kozl...@mini.pw.edu.pl> wrote:
>> ...W kodzie tworzenie interface było bardzo czytelne i zajmowało około
>> 180 linii. Wygenerowany plik glade dla tego interface ma ~800 linii i
> Bo pliki .glade edytuje się w aplikacji, w której możesz sobie ten
> interfejs wyklikać, a nie ręcznie.

Wszystko cacy, jeśli zmieniasz kontrolkę po kontrolce. Jeśli chcesz coś
zmienić dla N kontrolek (jakiś default), to klikanie jest nieco
czasochłonne.

To trochę jak pisanie książki w Wodzie albo vim+latex. Na pewnym
poziomie bez klikania wychodzi szybciej...

> Glade ma sens w przypadku projektów, gdzie interfejs użytkownika
> nie ma jeszcze ostatecznego kształtu i ulega ciągłym zmianom. Takie
> rzeczy można szybko i w miarę bezstresowo wykonać w programie (glade2?),

Mówimy o Glade3.

> natomiast przy interfejsie wyklepanym w klasach, trzeba przerzucać
> całe bloki kodu, zmieniać dowiązania itp. przy każdej zmianie położenia
> elementów.

E... A co za różnica czy zmieniasz plik XML, czy piszesz malutki moduł
ładujący element interface?

> Glade ma też sens dla leniwych ;)

No właśnie moje doświadczenia pokazują, że nie bardzo... W kodzie idzie
mi znacznie szybciej.

Pozdrawiam,
/M

Daniel Mróz

unread,
Dec 10, 2009, 2:41:32 PM12/10/09
to
On 10.12.2009, Marek Kozlowski <kozl...@mini.pw.edu.pl> wrote:
>>> ...W kodzie tworzenie interface było bardzo czytelne i zajmowało około
>>> 180 linii. Wygenerowany plik glade dla tego interface ma ~800 linii i
>> Bo pliki .glade edytuje się w aplikacji, w której możesz sobie ten
>> interfejs wyklikać, a nie ręcznie.
> Wszystko cacy, jeśli zmieniasz kontrolkę po kontrolce. Jeśli chcesz coś
> zmienić dla N kontrolek (jakiś default), to klikanie jest nieco
> czasochłonne.
Defaultów to raczej się już nie tyka po zdefiniowaniu. Co innego jeśli
chodzi o przesunięcie jakichś pól tekstowych, czy machanie przyciskami.

> To trochę jak pisanie książki w Wodzie albo vim+latex. Na pewnym
> poziomie bez klikania wychodzi szybciej...

Dlatego jeśli już używałem glade to tylko do prototypowania. Kiedy już
wiedziałem co chcę osiągnąć, klepałem wszystko w kodzie.

>> natomiast przy interfejsie wyklepanym w klasach, trzeba przerzucać
>> całe bloki kodu, zmieniać dowiązania itp. przy każdej zmianie położenia
>> elementów.
> E... A co za różnica czy zmieniasz plik XML, czy piszesz malutki moduł
> ładujący element interface?

Zakładam, że zmian dokonujesz w glade2/3, a nie bezpośrednio w pliku XML.
Przeniesienie przycisku w inne miejsce przy pomocy aplikacji jest szybsze
i nie wymaga modyfikacji kodu. W przypadku interfejsu "wyklepanego" trzeba
już się bawić, bo zmienia się kontener i przycisk inaczej wpływa na inne
elementy.

>> Glade ma też sens dla leniwych ;)
> No właśnie moje doświadczenia pokazują, że nie bardzo... W kodzie idzie
> mi znacznie szybciej.

Wiesz, dla mnie pisanie w LaTeXu jest prostsze, dla kogoś innego Word
jest łatwiejszy. Kwestia gustu i preferencji.

Marek Kozlowski

unread,
Dec 10, 2009, 5:13:30 PM12/10/09
to
:-)

> Wiesz, dla mnie pisanie w LaTeXu jest prostsze, dla kogoś innego Word
> jest łatwiejszy. Kwestia gustu i preferencji.

Ale zawsze warto zapytać kogoś z większym doświadczeniem....

BTW: Właśnie wgrałem 3.6.7. Miła cecha, że wreszcie zaznacza wszystkie
non-defaulty -- bez tego była porażka.

Pozdrawiam,
/M

0 new messages