Nedavno som zacal pouzivat PyGtk a chcel by som vediet ci
su dake zasadne rozdiely medzi Gtk a Qt. Ak ano, tak ake.
Viem, ze na Gnome je rozsirenejsie Gtk a Qt je skor na KDE.
Na spustanie aplikacii v PyQt treba okrem modulu PyQt aj python,
ktory na vascine linuxovych distribucii je predinstalovany, ale na windosoch nie.
Takze treba nainstalovat python, PyQt a Qt.
Gtk sa podla mna skor najde na vindouse, lebo na nom bezi Gimp.
Rozdíly v PyGtk a PyQt jsou asi jako mezi Gtk a Qt.
Na aplikace v PyGtk je potřeba taky Python. Jinak by to nebyla aplikace v Pythonu.
Gimp na Windows neběží jen tak sám od sebe, taky se tam musí Gtk knihovny doinstalovat (většinou jsou součástí instalace Gimp).
Knihovny PyQt4 i Qt4 jsou k dispozici i pro Windows, tak to na nich bude zřejmě běhat taky.
Pěkný, dobře popsané, těším se na další článek. Takové informace o PyQt na českém internetu chyběly tak je to dobrý pro neangličtináře. Ale mám takovou otázku, nevíte někdo jak nastavit implicitní velikost okna po spuštění? Hledám, hledám a zkouším ale nic z toho nefunguje.dík
prenechat ergonomii nejakemu layout-manageru jen nahrava ocnim optikum a ortopedum. Doporucuji si neco nastudovat o ergonomii a neopakovat ty nesmysly, ktere se clovek dovedel na katedrach informatiky tzv. vysokych skol ...
Doporucuju si neco nastudovat o layout managerech. Pak bys vedel, ze jsou tu prave proto, aby ubyla prace ocnim optikum. :)
Napriklad umoznuji, aby aplikace byla provozovatelna na displejich s ruznym rozlisenim (DPI) tim, ze prizpusobuji rozvrzeni okna dle velikosti jednotlivych widgetu. Neni to vsak nejaka vyssi inteligence, je na navrhari GUI, aby tam pravidla pro prispusobovani nastavil.
Díky za první článek. Na abclinuxu vycházel svého času seriál PyQt, ale po dvou dílech skončil. Tak se těším na pokračování.
Zajímalo by mne, zda PyQt má k dispozici načítání gui ze souboru, podobně jako Gtk má Glade. Určitě by to pomohlo při vývoji Gtk/Qt aplikací.
Qt4 ma qt4-designer, coz je neco podobneho jako glade pro gtk. Vytvorite v nem .ui soubor a ten pak prevedete pomoci pyuic4 (v debianu unstable v baliku pyqt4-dev-tools) do python skriptu (hezky je to shrnuto v na http://vizzzion.org/?id=pyqt#designer ). Qt4-designeru se budu taky ke konci serialu venovat, ale jsem nazoru, ze nema cenu v nem ze zacatku pracovat, protoze je potreba se alespon trochu obeznamit s widgety v Qt4. Stejne Vas prace s nimi ani v designeru nemine :)
Neviem sice ako je to s glade, ale Qtcko zvlada dokonca dynamicky nacitavanie z ui suborov(xmlka). Sluzi na to trieda QWidgetFactory. Takze urobis nieco taketo:
a on ti pekne krasne vytvori okno z ui ulozeneho na disku. Da sa tak celkom pekne umoznit userom aby si upravili ui.(Ok normalnym userom by som to do ruky nedal :), ale prijemne sa s tym robi)
Ahoj,
asi před 2 týdny jsem začal programovat v PHP-GTK. Hlavně ze 2 důvodů:
1) PHP je jedinej jazyk, kterej umim. Ještě zvládam základy Javy.
2) Je to fakt jednoduchý a to včetně instalace ve Windows. Navíc je k tomu výborná dokumentace.
Co mi vadí je hlavně GTK a jeho příšerný dialogy pro otevření souboru.
Chtěl bych proto od Vás radu: Mam se vykašlat na PHP a naučit se Python? Slyšel jsem, že je lepší než PHP. Je hodně vleký rozdíl mezi PHP a Pythonem? Jak rozběham PyQt ve Windows? Je tam nějaký zádrhel?
No asi to ca mam už nebude předělávat do PyQt, ale příští program v něm zkusím.
A teraz mi povedz kolko jazykov ovladas a ci si niekedy robil v PHP. Ja v nom robim aktivne (len web) a je to lahky jazyk, pretoze na webe tych veci moc nepotrebujes a preto je na urcite operacie ovela jednoduchsi ako nieco ine. Kedze bol primarne pre tento ucel stvoreny tak co cakas ?
To su mi konstruktivne prispevky. Ze sa ti chcelo aj reagovat. Mne sa na teba chcelo, lebo aj ked som si hovoril, ze to je hlupy prispevok, ale premohol som sa.
Co sa tyka lahkosti/tazkosti ucenia tak v pripade ze si sa SERIOZNE ucil PHP tak nebudes mat problem prejst na iny skriptovaci jazyk(aspon co sa zakladov tyka). Iste..syntax je odlisna, ale to je iba drobnost. Najtazsou vecou je naucit sa spravne rozmyslat a uvedomit si specifika jazyka v ktorom prave programujes. V niektorom jazyku sa moze povedze zauzivat ine pomenovanie premennych, iny styl odsadenia a zatvorkovania atd.
Pokiaľ neplánuješ tvoriť na web, tak na Python prejdi. Je vraj 2-5x rychlejsi ako PHP (rychlost zalezi hlavne od programatora a typu ulohy), ma kopu predistalovanych kniznic, nema "zbytocne" syntakticke bodkociarky a zlozene zatvorky a nuti ta odsadzovat bloky kodu, takze je aj prehladnejsi.
neviem prečo si to dal do uvodzoviek Python je klon Basicu PHP je podobné až na to že sa syntakticky trochu podobá na C++. Python neni plnohodnotný programovací jazyk. Skús v PHP, Pythone alebo Basicu naprogramovať Driver, 3DEngine alebo XServer.
Prosim tě.. definuj mi "plnohodnotný programovací jazyk". Když to není Python tak co tedy? To, že byl Python vytvořen k jiným věcem než k driverům ho rozhodně nehází pod jiné jazyky.
Že z jazyků, které neznají pointery, znáš hlavně Basic, ještě neznamená, že jsou všechny odvozené od Basicu. Před Basicem tady byl například Fortran a a Cobol, že jo. Python vychází z několika jazyků - podle Wikipedie byl ovlivněn jazyky ABC, C, Haskell, Icon, Lisp, Modula-3, Perl, Smalltalk, Tcl, Java. Vzhledem k tomu Haskellu, Lispu a Smalltalku, kde je ten vliv na první pohled viditelný, je Tvůj výrok o "klonu Basicu" naprosto absurdní. U PHP je to podobné - nemá z Basicu lautr nic.
S tím "plnohodnotným jazykem je to opět směšné". Python, PHP ani Basic nejsou strukturovanými asemblery jako je třeba C a proto nemají pointery atd. Napsat v nich driver by samozřejmě bylo možné - stačilo by nízkoúrovňové operace z C převést na volání funkcí a relativně jednoduchý překladač by je z kódu v Pythonu nebo v jiném podobném jazyce poměrně snadno přeložil do asembleru. Každý jazyk je vhodný na něco jiného.
Tu nejde o žiadne Pointery teoreticky by sa dal Python jednoducho o pointery rozšíriť. Najdôležitejšie je praktické uplatnenie. Keby bol Python plnohodnotný programovací jazyk tak asi prečo sa v praxi nepužíva(python pozná možno promile programátorov)? prečo neni Linuxový kernel, JVM alebo Photoshop napísaný v Pythone? Pretože to(bez pomoci iného jazyka) proste nejde, Python neni plnohodnotný programovací jazyk.
"Každý jazyk je vhodný na něco jiného."
Interpretované jazyky sa hodia: na výučbu programovania, na server side scripty, shelly, alebo ako doplnok k plnohodnotnému jazyku, inak v praxi nenachádzajú žiadne uplatnenie. Doba interpretovaných jazykov skončila pred 20timi rokmi súbežne so zánikom 8-bitov.
Že ten SUN vůbec vymejšlel Javu, Microsoft jí potom ukradl a nakonec okopíroval v podobě C#. Všichní výrobcí mobilů jsou asi taky padlí na hlavu, když do nich implementujou Javu ME.
Dle mého skromného názoru naopak interpretovaný jazyky mají budoucnost. A proč - lehce se v nich programuje a výkon současnych počítačů už je dostatečný k tomu, aby utáhl program i interpreter.
Kombinacia nizkourovnoveho programovacieho jazyka (C,C++) a interpretovaneho jazyka sa v sucasnosti ukazuje ako najoptimalnejsie riesenie pre vyvoj rozsiahlych projektov. V efektivite mu konkuruje len interpretovany bajtkod, popularny hlavne vdaka Jave.
Aj ked sa zdalo, ze sme interpretovane jazyky nadobro pochovali pred 20timi rokmi, je evidentne, ze v sucasnosti prezivaju svoju renesanciu. Takmer vsetky programy, ktore boli doteraz pisane v C/C++ budu coskoro obsahovat wrapper na niektory z interpretovanych jazykov. Z dovodu zvysenia produktivity sa budu dalsie vysokourovnove komponenty programovat v interpretovanom jazyku.
Python uz davne nie je len vystrelok malej skupiny programatorov. V sucasnosti sa dostava do pozicie najpouzivanejsieho vysokourovnoveho interpretovaneho jazyka pouzivaneho pre kombinovane softverove riesenia. Da sa povedat, ze v sucasnosti dominuju dva trendy vo vyvoji aplikacii: pouzitie kombinacie C/C++ a Pythonu a pouzitie Javy. Ktory z nich v buducnosti prevazi zavisi hlavne od politiky Sun Microsystems.
Nechcem tym povedat, ze akykolvek iny interpretovany jazyk nema buducnost. Aplikacie napisane v jazykoch Perl, PHP alebo Rubi mozu by rovnako dobre, ak nie lepsie ako aplikacia v Pythone. Rovnako nechcem budit dojem, ze interpretovany bajtkod je horsi ako kombinacia strojoveho kodu a interpretovaneho jazyka. Vsetko v konecnom dosledku zavisi od konkretnej implementacie.
Väčšina programátorov uprednostňuje práve ten interpretovaný bytecode pred čisto interpretovanými jazykmi. Jazyky prekladané do bytecodu v sebe kombinujú jednoduchosť a flexibilitu interpretovaných jazykov a na druhej strane efektívnosť, robustnosť, bohatosť a odolnosť voči chybám zdedili z kompliovaných jazykov. Preto majú Java a platforma .NET medzi developermi taký úspech. Stačí porovnať koľko odbornej literatúry, školení seminárov atď. sa venuje Jave a .NETu a koľko málo záujmu sa venuje exotickým jazykom ako Python, Ruby alebo SmallTalk.
"Aj ked sa zdalo, ze sme interpretovane jazyky nadobro pochovali pred 20timi rokmi, je evidentne, ze v sucasnosti prezivaju svoju renesanciu."
Interpretovaný Basic bol nahradený kompilovaným VB.NET ktorý má s pôvodne interpretovaným jazykom zhodnú už iba syntax. S klasického BASICU sa stal mŕtvy jazyk. Rozhodne sa nedá hovoriť o boome interpretovaných jazykov, práve naopak aj od kedysi veľmi populárneho PHP postupne programátori znechutene odchádzajú.
1. Python (CPython = hlavní implementace Pythonu) samozřejmě používá bytecode
2. Python běží nad JRE (Jython)
3. Python běží nad CLR (IronPython)
4. Ty plácáš kraviny (soustavně)
Stále sa mi zdá že sa bavíme len v teoretickej rovine, ja praktické uplatnenie jazykov typu Python nevidím, inak neodpovedal si mi na predchádzajúci post.
"1. Python (CPython = hlavní implementace Pythonu) samozřejmě používá bytecode"
Noa? Výkonnostné rozdiely medzi bytecodom skriptovacích jazykov a bytecodom plnohodnotných jazykov sú obrovské. A nielen to, v Jave sa veľké množstvo chýb odhalí už behom prekladu. Je to už starý neaktuálny graf, ale na demonštračné účely plne postačuje. O druhej v noci sa mi fakt nechce robiť benchmark:
Kličkuješ jak zajíc. Napřed napíšeš, že Python (a PHP) syntakticky vychází z Basicu. Vyvrátíme Ti to, začneš mlít něco o plnohodnotných a neplnohodnotných jazycích. Důvodem je prý to, že v Pythonu nejde napsat linuxovén jádro. Já jsem dokázal, že by to šlo, ty drmolíš něco o tom, že sice šlo, ale že není plnohodnotný, protože v něm nikdo nepíše JVM ani linuxové jádro. Pak přijdeš s tím, že Python je na nic, protože nemá bytecode. Já napíšu, že má a začneš mrmlat něco o tom, že Python není Java. IronPython ani Jython u Tebe nejsou interpretované jazyky, ale zapomínáš, že to je furt Python, takže tím vlastně vyvracíš svoje tvrzení, že Python je na nic, protože je interpretovaný. Pak ještě označíš Javu za plnohodnotný jazyk a zapomeneš při tom na to, že v ní nejsou napsané ani linuxový kernel ani Photoshop a dokonce ani to JVM.
Jedine dva skutečné argumenty, ktere jsi vyplodil, jsou o nizsi rychlosti programu v Pythonu (a dalsich podobnych jazyku) oproti C++, Javě apod. a o některých výhodách statického typování. Jenže Ty to hned shodíš kecama o tom, jak Java má v zásadě všechny výhody Pythonu nebo Ruby (pitomost, každý trochu otevřený javista ví, že to není pravda) a mimoňskýma teoriema o Basicu. Hlavní problém je ale v tom, že neumíš přiznat chybu. Ale to je Tvůj problém a Ty na to doplácíš.
"Napřed napíšeš, že Python syntakticky vychází z Basicu. -"
Podobnosť Pythonu s Basicom som si nevšimol len ja.
"VYVRÁTÍME TI TO, začneš mlít něco o plnohodnotných a neplnohodnotných jazycích."
Zatiaľ si mi to nevyvrátil...
"Důvodem je prý to, že v Pythonu nejde napsat linuxovén jádro. JÁ JSEM DOKÁZAL, ŽE BY TO ŠLO, ty drmolíš něco o tom, že sice šlo, ale že není plnohodnotný, protože v něm nikdo nepíše JVM ani linuxové jádro."
Dokázať sa dá všetko, teoreticky by sa dal linuxový kernel naprogramovať aj v Baltíku dokazovať mi to nemusíš z pohaľadu developera, ktorý sa vývojom aplikácií živí je to nezmysel.
"Pak přijdeš s tím, že Python je na nic, protože nemá bytecode."
To som nikde nenapísal.
"Jenže Ty to hned shodíš kecama o tom, jak Java má v zásadě
všechny výhody Pythonu nebo Ruby (pitomost, každý trochu otevřený javista ví, že to není pravda) a mimoňskýma teoriema o Basicu."
Blbosť, asi máš problém porozumieť obsahu písaného textu napísal som:
Jazyky prekladané do bytecodu v sebe kombinujú jednoduchosť a flexibilitu interpretovaných jazykov a na druhej strane efektívnosť, robustnosť, bohatosť a odolnosť voči chybám zdedili z kompliovaných jazykov.
Pracujem v oblasti vedy a vyskumu, kde sa interpretovane jazyky vyuzivaju uz pomerne dlhu dobu. Zatial co este pred par rokmi sme na vyvoj aplikacii pouzivali takmer striktne FORTRAN/C/C++, dnes sa zacinaju velke casti aplikacii vyvijat v Pythone. V Jave sa programuju len aplikacie aktivne prepojene s internetom/intranetom a edukacne aplikacie v podobe appletov. Riesenia na baze .NET su velmi zriedkave.
V mojom obore by si asi nikto netrufol nazvat Python exotickym jazykom. Aj ked osobne vacsinou pouzivam Javu, vseobecne sa skor uprednostnuje Python.