Python - 24. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Python - 24. lekcePython - 24. lekce

 

Python - 24. lekce

Google       Google       27. 8. 2006       24 184×

Dokončíme pythonovsko-tkinterovský Prohlížeč obrázků. Letem světem, protože předpokládám, že budete více sami objevovat. Zprovozníme tlačítka Vpřed a Vzad, s čímž souvisí tvorba seznamu, ve kterém budou všechny obrázky z adresáře s aktuálním obrázkem. Potom Stavový řádek a úkol je hotov!

Reklama
Reklama

Vlevo a vpravo

Chceme-li se po stisknnutí tlačítka Vlevo pohnout doleva, budeme asi chtít, aby se zobrazil předchozí obrázek. Snad nejlepší bude, abychom si při načítání prvního obrázku udělali seznam všech obrázků (kontejner.obrazky) v adresáři, ve kterém leží ten první. A taky bude vhodné si pamatovat index toho obrázku, který je právě zobrazen (kontejner.index). Abychom mohli snadno najít další:

def vlevo():
    kontejner.index=kontejner.index-1
    zobrazObrazek(kontejner.obrazky[kontejner.index])

Bude potřeba dodělat ještě kontrolu na překročení limitu indexu, protože… No vyzkoušejte sami a upravte. Funkce Vpravo bude vypadat velmi podobně.


Seznam obrázků

Na vytvoření seznamu všech obrázů bude nejlépe si vytvořit funkci, kterou budeme volat z funkce, která zpracovává vstupní argumenty. Následuje algoritmus, který ukazuje cestu. Většinu funkcí, které budete zde potřebovat, najdete v modulu os.path.

def seznamObrazku(obrazek):
    zjisti cestu k obrazku
    kontejner.obrazky=[]
    for soubor in os.listdir(cesta):
        zjisti příponu souboru
        převeď příponu raději na malá písmena,  protože JPG != jpg
        pokud je přípona obsažena v [".gif",".jpg",".bmp"]:
            vyrob plnou cestu k obrázku (protože pracujeme s plnými cestami)
            kontejner.obrazky.append(cestaPlna)
    
    zjisti index obrazku (kontejner.index=.............) 

Stavový řádek

Zbývá nám prázdný řádek pod obrázkem. Zajistěte, nejlépe ve funkci zobrazObrazek(), aby se do něj insertovaly informace, jaké chcete. Třeba jméno nebo velikost, čas a apod.


Další

Jistě je spousta věcí, které by se daly přidělat. Hodně z toho, co vidítě u konkurečních Prohlížečů obrázků, a snad i něco jiného, nového, Vašeho.


Úkol

Funkční Prohlížeč obrázků. Ještě jednou opakuji z minulé lekce: Na všechna řešení se těším, bez ohledu na to, jestli tento článek čtete v den vydání nebo 5 let po ;-)


Dost bylo geona!

Toto je závěr druhé dvanáctky lekcí kurzu Python. Tímto se s Vámi loučím a těším se na setkávání na forech. Pokud se nic zvláštního nestane, kurz Pythonu ode mne na Programujte touto lekcí končí. Doufám, že se časem objeví někdo, kdo povede kurz Python II, případně seriál Python, Tipy a triky Python nebo co já vím. Přeji mu mnoho štěstí :-)

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Pavel KosinaAutor programuje v Pythonu.
Web    

Nové články

Obrázek ke článku Facebook spouští službu Marketplace V ČR

Facebook spouští službu Marketplace V ČR

Společná platforma Marketplace usnadní lidem na Facebooku vyhledávání, nákup a prodej použitého zboží na lokální úrovni. Bude tak přímou konkurencí pro weby a aplikace se stejným zaměřením jako je například Letgo, Bazoš, Aukro, Sbazar a další.

Reklama
Reklama
Obrázek ke článku DistrCut – optimalizace pomocí distribuované inteligence

DistrCut – optimalizace pomocí distribuované inteligence

Optimalizační systémy, které jsem dosud popisoval, se týkaly vždy optimalizace na jednom zařízení. Optimalizovalo se dělení tyčového materiálu na jedné pile, vypalování plošného materiálu na jednom plazmovém stroji, řídilo se tavení na jedné elektrické obloukové peci.

Ve výrobním procesu je však často nutné optimalizovat činnost celého výrobního úseku, kde je více různých objektů odlišného typu a koordinovat činnost těchto objektů k dosažení společného cíle, zpravidla kvality finálního výrobku. Řešení tohoto problému umožňuje distribuovaná inteligence.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý