Proste skryptowanie graficzne w pythonie.

Czasami człowiek musi, inaczej się udusi. Aktualnie nie koduję zawodowo [ani nawet półzawodowo], ale ostatnimi czasy namnożyło się drobiazgów, które niepotrzebnie zżerają czas, postanowiłem więc zautomatyzować niektóre rzeczy i napisać parę skryptów ułatwiających życie.

Ponieważ większość pisana jest nie dla mnie, a wewnątrzkorporacyjnie, postanowiłem napisać to w formie przyjaznej użytkownikom [zwykły wybór plików i parę komunikatów na krzyż, nic wielkiego], żeby ułatwianie życia ludziom nie odbywało się poprzez przesyłanie do mnie plików do obróbki. Wielkie, płatne pakiety nie wchodziły oczywiście w ogóle w grę. W pierwszym momencie pomyślałem odruchowo, że jakieś menu tekstowe w windzianym CLI nie będzie głupim pomysłem. Wbrew powszechnej chyba opinii nie jest on aż tak bardzo poszkodowany; żeniąc windowsową implementację curses chociażby z uchwyceniem rozmiarów okna aż mnie korci, żeby któregoś dnia usiąść i popełnić jakąś biblioteczkę do obsługi windowsowego terminala… przy dużych krojach i jasnym tle nikomu nie skojarzy się to ze średniowiecznym DOSem, a i człowiek dorobi się własnych narzędzi, mogących być podstawą do tworzenia czegoś większego.

Ale jeszcze nie teraz. Tryb tekstowy wykrzaczył się przy pierwszej próbie odpalenia go w PyCharm [świetne narzędzie po paru dniach, choć uświadamia mi własną miernotę…], ale zanim znalazłem odpowiedni przełącznik, odkryłem EasyGUI. I to był strzał w dziesiątkę. Zero olbrzymich bibliotek, inicjowania środowiska… po prawdzie też zero nieco bardziej niż trywialnej obsługi podstawowych elementów interfejsu Windows, ale tego przecież nie potrzebujemy. Wywołanie okna z domyślną klawiszologią to jedna komenda [niech żyje nam programowanie funkcyjne!], a user całkiem inaczej reaguje na znajome okna wyboru plików, niż gdyby miał to robić na czarnym tle pośród krzaków i tekstowego obrazowania katalogów, brrr. Mniam.

A z czego Wy korzystacie, jeśli trafia się [?] taka robota?

9 thoughts on “Proste skryptowanie graficzne w pythonie.

  1. O jakie miłe zaskoczenie. Chociaż do korpo pasuje VBA w Excelu i toporne GUI, które jest w stanie opanować tylko jeden pracownik ;-))

    Używałem PyGTK2. Było proste i wieloplatformowe. Jedyną trudnością są widgety MVC, toporne i przesadnie skomplikowane. Sytuację ratował framework Kiwi.

    W wersji 3 GTK autorzy ustalili, że wiedzą najlepiej czym nas uszczęśliwić, przez co zaowocowali wielką ucieczkę programistów z tego syfu.

    Dziś używam HTML5 i Javy na Androidzie.
    W Pythonie są proste frameworki do emisji HTML typu Flask i Jinja2. Jest jeszcze fajne Nodejs, ale to śmietnik i nadaje się raczej tylko do komunikacji w czasie rzeczywistym ze zdalną aplikacją przez WebSocket.

    Młodzi programiści geniusze(tm), którymi się opiekuję zaczęli używać Qt5 i języka QML. Z Pythona i GTK uciekli w ramiona C++, które QML wspaniale uzupełnia.

    Polubienie

  2. Ja tam raczej nie bawię się w GUI, w każdym razie nie na własne potrzeby. Osobiście wolę podać wszystko w argumentach wiersza poleceń i iść zrobić sobie kawę, niż być co 10 sekund pytanym, co dalej, mistrzu… :p Oczywiście czasem się tak nie da, ale wtedy raczej nie używam Pythona.

    Polubienie

  3. @Świętomir: na własne [„very własne”] potrzeby to ja też piszę w CLI. Ale jak te potrzeby stają się własne nie bardzo very, to wolę jednak zrobić te okienka otwarcia plików [i przy okazji pobuszować w nie do końca znanych wcześniej rejonach], niż robić później ludziom szkolenia i mitrężyć przy okazji ich czas. W dniu, w którym ogarniesz ideę pisania dla niekomputerowców [albo przynajmniej dla ZUów], zrobisz znaczący krok w stronę zarobienia pierwszego miliona franków szwajcarskich 😛

    Polubienie

  4. Tak, wiem, o czym piszesz. Nadal jednak tego nie rozumiem. Przykro to przyznać, ale mój ograniczony umysł nie potrafi pojąć, jakiego szkolenia może wymagać wpisanie trzech słów? Co jest takiego w konsoli systemowej, że ludzie tak panikują na jej widok?

    I przy okazji nadal nie potrafię rozstrzygnąć, czy Microsoft, upowszechniając „okienka” zrobił ludziom większą przysługę, czy krzywdę… :p I zanim zdążycie odsądzić mnie od czci i wiary za tę ostatnią wątpliwość, dodam, że oczywiście idea okienek sama w sobie jest wielce użyteczna. Tyle tylko, że czasem jej dodawanie jest dla programu zbędnym balastem, tudzież zupełnym przerostem formy nad treścią. Nie mówiąc już o bólu głowy, o jaki może przyprawić programistów. :p

    Polubienie

  5. A ja nie bardzo ogarniam, w czym leży ideologiczna niższość dopisania paru okienek dialogowych – bo wziąłem to głównie z racji wyboru pliku. Plik do obróbki przychodzi w nazwie długaśnej i bez mała losowej, więc jeśli go zapiszemy „as is”, tab completion może na wejściu wymagać kilku[nastu] keypressów [pomijając gąszcz nieistotnych w tej chwili plików innego typu…], ewentualnie pamiętania o każdorazowym czyszczeniu katalogu po operacji, do czego jeszcze dochodzi kilka funkcji, do których trzebaby było dorobić przełączniki… naprawdę nie wiem, w czym to miałoby być lepsze od jednego okienka z menu opcji i drugiego z wyborem pliku, gdzie każda taka operacja – nie licząc importu modułu – to 1 [JEDNA] linijka kodu. KISS, Świętomir 😀

    Polubienie

  6. Myślę, że „nie licząc importu modułu” jest tu elementem dość znaczącym, a Ty go tak beztrosko bagatelizujesz. :p

    A poważniej, niższość nie jest ideologiczna, ale pragmatyczna właśnie. Wywołanie programu z konsoli jest zazwyczaj szybsze, to raz. Dwa, jeśli używamy go często, do zwykle wydanie polecenia sprowadza się do naciśnięcia strzałki w górę, ewentualnie uzupełnienia argumentów – to dwa. A trzy: programom posługującym się skryptem wielokroć łatwiej wydać jedno polecenie od razu specyfikujące wszystkie wymagania i dane wejściowe, a to sprzyja dalszej automatyzacji.

    Wreszcie nie wspomniałeś wcześniej, jak wyglądają nazwy plików wejściowych. Lekkomyślnie założyłem więc, że mają normalne, przynajmniej w miarę logiczne nazwy, a nie losowe ciągi liter i cyfr. Ta okoliczność – przyznaję – zmienia co nieco. Dla człowieka, bo argument o automatyzacji pozostaje w mocy tak czy tak. 😉

    Polubienie

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s