Chystáme se vytvořit malý program s PyGTK 3.0, který funguje také pro PyGTK 3.4. Toto malé GUI vás naučí, jak rozdělit program na dva nebo více souborů.
Můžete navštívit tutoriál Sebastiana Pölsterla o novém PyGTK 3, zde je nový tutoriál, nechávám odkaz:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Toto je Sebastianův blog.
Jedna kritika tohoto tutoriálu od Sebastiana je, že neučí, jak rozdělit program na části nebo na několik souborů, bylo by dobré, kdyby ukázal příklad, jak to udělat s PyGTK 3.
Všechny velké a složité programy jsou rozděleny do mnoha souborů a soubory jsou dokonce umístěny v jiných adresářích, to znamená, že jsou umístěny v různých složkách.
Začněme malým příkladem:
Zde je kód pro psaní v jediném souboru s názvem gui.py. Otevřeme textový editor Gedit nebo editor, který používáme nejčastěji, zkopírujeme níže uvedený kód a uložíme jej jako gui.py
z gi.repository import třídy Gtk gui (): def on_open_clicked (vlastní, tlačítko): tisk „Bylo otevřeno tlačítko„ Otevřeno “„ def on_close_clicked (vlastní, tlačítko): tisk „Zavírání aplikace“ Gtk.main_quit () def __init__ (self): self.window = Gtk.Window () self.window.connect ('delete-event', Gtk.main_quit) self.box = Gtk.Box () self.window.add (self.box) self. button = Gtk.Button (label = 'Open') self.button.connect ("kliknuto", self.on_open_clicked) self.box.pack_start (self.button, True, True, 0) self.button = Gtk.Button ( label = 'Zavřít') self.button.connect ("kliknuto", self.on_close_clicked) self.box.pack_start (self.button, True, True, 0) self.window.show_all () Gtk.main () pokud __name__ == '__main__': gui = gui ()
def on_open_clicked (self, button): print "\" Bylo otevřeno tlačítko "
Jedná se o funkci, která se aktivuje v terminálu, když klikneme na tlačítko Otevřít. Signál pro jeho aktivaci je:
self.button.connect ("kliknuto", self.on_open_clicked) def on_close_clicked (self, tlačítko): tisk "Zavírání aplikace" Gtk.main_quit ()
Je to funkce, která se aktivuje, když klikneme na tlačítko zavřít.
zavřete program, který spustíme.
signál k jeho aktivaci je
self.button.connect („kliknuto“, self.on_close_clicked) z gi.repository import Gtk ### vyvoláme knihovny PyGTK ### třída gui (): ### definice třídy zvaná gui je hlavní třída # ##
Deklarace widgetů: widgety je program předurčený knihovnami grafického rozhraní, které používáme. Například widgety jsou tlačítko, okno, rámeček atd. Toto jsou widgety, které deklarujeme v našem programu.
self.window = Gtk.Window () ### okno ### self.box = Gtk.Box () ### box #### self.button = Gtk.Button (label = 'Otevřít') ### # tlačítko otevřít #### self.button = Gtk.Button (label = 'Zavřít') #### tlačítko zavřít #### self.window.add (self.box) #### pole je obsaženo v okno s názvem okno #### self.box.pack_start (self.button, True, True, 0) ##### tlačítko je obsaženo v poli nazvaném box ### self.window.show_all () ## # zobrazíme celé okno ### gui = gui () ### vytvoříme objekt gui ####
Náš program umístíme do složky s názvem simple v našem případě na plochu
Otevřeme složku s terminálem, v mém případě používám Nemo z Linux Mint 14.
Ke kompilaci jsme vložili do terminálu python gui.py
viz obrázek.
Nyní můžeme vidět náš malý program nebo nový widget vytvořený pomocí knihoven PyGTK 3
Jedná se o jednoduché okno se dvěma tlačítky.
Teď rozdělíme program na tři části, pak nechám kód pro tři soubory.
První soubor gui.py
z gi.repository import Gtk ze zničit import zničit z io import io třída gui (zničit, io): def __init __ (self): self.window = Gtk.Window () self.window.connect ('delete-event', Gtk .main_quit) self.box = Gtk.Box () self.window.add (self.box) self.button = Gtk.Button (label = 'Otevřít') self.button.connect ("kliknuto", self.on_open_clicked ) self.box.pack_start (self.button, True, True, 0) self.button = Gtk.Button (label = 'Zavřít') self.button.connect ("kliknuto", self.on_close_clicked) self.box.pack_start (self.button, True, True, 0) self.window.show_all () Gtk.main () if __name__ == '__main__': gui = gui ()
Druhý soubor io.py
třída io: def on_open_clicked (vlastní, tlačítko): tisk „Bylo kliknuto na tlačítko„ Otevřít “
Třetí soubor destru.py
z gi.repository import třídy Gtk zničit: def on_close_clicked (self, button): print "Closing application" Gtk.main_quit ()
V našem případě umístíme tři soubory do stejné složky, složka se nazývá simple split.
Zkompilovat tři soubory. Otevřeme složku s terminálem a jednoduše ji vložíme zpět do terminálu
python gui.py
Úpravy provedené v kódu gui.py
ze zničit import zničit ### příkaz k importu našeho souboru destru.py ### z io importovat io ### příkaz k importu našeho souboru io.py ### třída gui (zničit, io): #### do třída hlavní přidáme podtřídy zničit a io ####
Vidíte tu větu
def on_open_clicked (self, button): print "\" Bylo otevřeno tlačítko "
Není v gui.py, je v souboru io.py
Věta
def on_close_clicked (self, button):
tisk "Zavírání aplikace"
Gtk.main_quit ()
nachází se v souboru destru.py
Můžeme tedy rozdělit program na mnoho souborů umístěných v různých adresářích současně.
Na druhou stranu je Python pilířem svobodného softwaru a je přizpůsoben pro práci s GTK 3.6 /3.8, jeho název je PyGTK. Pythonova adaptace pro KDE se nazývá PyQT.
Python je přizpůsoben pro Mac OS a WINDOWS.
Doufám, že vám tento mini tutoriál PyGTK3 pomohl. Mohou dělat všechny konstruktivní kritiky, které chtějí.
Znám také nějaké Gtk 3.4 /3.6 a Vala GTK 3.4 / 3.6.
http://www.youtube.com/watch?v=9ckRn_sx8CE
Nakonec se uživatelé KDE omlouvají za to, že pro KDE neprovádějí mini tutoriál.
V kde dávám přednost použití kdevelop (myslím, že se tomu říká) k vytvoření GUI v pohodě, ale stále se mi těžko hledají procesy, aby se to stalo x věc: '(
Skvělé pro ty z nás, kteří používají Python: D!
Zdravím!
Dobrý den, sleduji tuto komunitu už dlouhou dobu a nejsem si moc jistý, jestli je to poprvé, co jsem komentoval, nebo jsem to udělal už dříve 😀 (psaní komentářů na webu mi moc nedává). Jde o to, že to udělám, abych nechal návrh Elavovi a KZKG ^ Gaarovi jako správcům, a myslím, že by bylo dobré přidat plugin pro barvení syntaxe, když v poslední době vidím více příspěvků s kódem v různých programovacích jazycích. Vím, že existuje poměrně málo pluginů, ale žádný jsem nezkoušel, protože nejsem uživatelem wordpressu, takže vás nechám přemýšlet o životaschopnosti požadavku. Využívám této příležitosti a ptám se ostatních čtenářů, co si o této myšlence myslí, protože vím, že jsou lidé, kteří si raději přečtou kód bez jakékoli ozdoby. Omlouvám se, pokud zde již bylo toto komentováno a bylo to z nějakého důvodu zamítnuto, protože si nepamatuji, že bych na toto téma viděl nějakou diskusi.
Pravdou je, že bych chtěl mít možnost vybarvit syntaxi, aby zvýraznil kód programovacích jazyků.
To by pomohlo uživatelům, kteří se chtějí naučit programovací jazyky.
Ale hej, také mi vyhovuje fórum a že můžeme společně diskutovat a učit se.
GNU Emacs je pohodlnější, protože alespoň si musíte vybrat, ve které kontrole programovacího jazyka chcete pracovat (pokud nechcete mít větší váhu pro svůj procesor, použijte GNU Nano a užívejte si minimalismus v nejlepším případě).
Elio, mluvíme o WordPressu. Implementováno na blogu Desde Linux. Nemá funkce pro vybarvování písmen příspěvků.
OH, omlouvám se.
Naaa emacs je pohodlný pro ty, kteří mají 84 prstů XD .., normální lidé, textmate, sublimetext nebo poznámkový blok ++ xd
Je nepravděpodobné, že jste se nenaučili psát, což je nutné, abyste zvládli GNU Emacs a jeho klávesové zkratky dobře. Jeho grafické uživatelské rozhraní vám navíc usnadňuje používání jeho nabídek (lze jej použít ve Windows, ale nedoporučuje se to dělat v normálním režimu, ale v režimu příkazového řádku, aby win32 váš bojkot neskriptoval).
Velmi cool návod. Mimochodem, zdrojový kód pythonu není kompilován, je to interpretovaný jazyk.
Lze jej zkompilovat do pseudokódu. Není to strojový jazyk, ale bajty, které tlumočníkovi něco představují, ale proces se také nazývá kompilovaný. V tomto smyslu je možné říci, že je něco kompilováno.
Možná je lepší naučit se pytgk2, protože nejnovější verze dostupná pro Windows je 2.24. Série 3 je nápadná svou absencí. A špatné jazyky říkají, že gnome v každé nové verzi rozbíjí všechna rozhraní API.
Naprogramuji maketu s GTK 3.4 / 3.6 a pravdou je, že vám zlomí trpělivost a hlavu, musíte přepsat kód, nyní chápu, proč si lidé z Linux Mint stěžují na GTK a projekt GNOME.
Pro ty z MINT souhlasím s GTK 2.4, to se nestalo.
Dobrý návod a reference.
Jen detail, protože byl vložen kód, v Pythonu jsou odsazení povinná a měla by být respektována v ukázkovém kódu.
Zdravím!
Můžete vysvětlit, z čeho se skládají povinné identifikace v Pythonu? Abych řekl pravdu, nikdy jsem to neslyšel. Jsem špatně zvyklý na fóra PyGTK 2/3 v angličtině a možná to přehlédnu.
V Pythonu nepoužíváte klíče jako v C nebo bloky začátku / konce jako v Pascalu, ale vše je chápáno prostřednictvím odsazení, které dáte kódu. To znamená, že bloky jsou rozpoznány jako odsazené. Je to vlastnost, kterou zvlášť miluji. Vyvarujete se psaní klíčů a podobných věcí.
Jen se mi to nelíbí, zdá se jednodušší dát dva malé klíče nebo std :: endl;, než být viděn, pokud je řádek xd dobře tabulkově
: p Váš učitel programování vám dá 0. Nebo ještě hůř, vyhodí vás z práce. Nejdůležitější je, že kód je čitelný se vším, co z toho vyplývá
končící zavíracími složenými závorkami, to mě dělá mnohem čitelnějším XD
Vážně???
int main(int argc, char *argv[]){program_name = argv[0];while ((argc > 1) && (argv[1][0] == '-')) {switch (argv[1][1]) {case 'v':verbose = 1; break;case 'o':out_file = &argv[1][2];break;case 'l':line_max = atoi(&argv[1][2]);break;default:fprintf(stderr,"Bad option %s\n", argv[1]);usage();}++argv;--argc;} if (argc == 1) {do_file("print.in");} else {while (argc > 1) {do_file(argv[1]);++argv;--argc;}}return (0);}
Vidíš? Bez odsazení to není příliš dobře pochopeno. A to je snadné. Se složitějším to rozumí pouze překladač. Jde o to, že i když MUSÍTE stejně odsadit (aby lidé rozuměli kódu), proč byste museli být nadbyteční a používat oddělovače? Dost s odsazením a to je vše.
Samozřejmě nic nerozumíme, protože nerespektujete pravidla dobrého psaní programu v c / c ++. To, co jste udělali, je platné pro cokoli, například pro vnoření funkce, uvnitř funkce uvnitř jiné funkce, která je uvnitř jiné, pak vás chci vidět xd, pokud tomu rozumíte.
mimochodem, se dvěma pohledy je tento kód snadno srozumitelný xD
To, co jsem udělal, jsem udělal záměrně, abych vám ukázal, že bez odsazení, i když se kompiluje, je nesmírně obtížné porozumět jakémukoli kódu. Máte tedy 2 pravidla: Odsadit a zahrnout s oddělovači. Ale to je nadbytečné. V Pythonu takový kód tlumočník jednoduše nepřijímá. A máte pouze jedno pravidlo: Odsazení. Snadný.
Ale hej, každý se svým vkusem.
Oba jsou dobré, odsazené i neodsazené, podle mého názoru preferuji středník nebo rubín, podobný pythonu, ale odsazení není nutné.
Tomu se lépe rozumí: P:
echo 'int main (int argc, char * argv []) {program_name = argv [0]; while ((argc> 1) && (argv [1] [0] ==' - ')) {switch (argv [ 1] [1]) {případ 'v': verbose = 1; break; case 'o': out_file = & argv [1] [2]; break; case 'l': line_max = atoi (& argv [1] [2]); break; výchozí: fprintf (stderr, »špatná volba % s \ n », argv [1]); usage ();} ++ argv; –argc;} if (argc == 1) {do_file (" print.in ");} else {while (argc> 1 ) {do_file (argv [1]); ++ argv; –argc;}} návrat (0);} '| perl -p -e 's / \ {/ \ {\ n \ t / g; s / \; / \; \ n \ t / g; s / \ t \} / \} / g;'
Zdravím 😀
Myslím, že Carlos znamená, že tam, kde vychází kód, nejsou žádné odsazení. To s kopírováním a vložením prostě nebude fungovat. Nevím, zda značka existuje při vytváření příspěvku
pro zadání kódu jazyka. Bylo by dobré, kdyby to dali, pokud neexistuje.
Už jsem viděl, v čem je problém: CODE Tag odstraní všechny mezery a karty (to by nemělo dělat !!!) Ale pokud na něj vložíte nbsp, pak kód vypadá dobře. A0 v hexadecimálním formátu (160 v prosinci), i když si myslím, že to může záviset na písmu (nevím). Pokud se použije, vyjde to takto:
def fib(n):
a, b = 0, 1
while a < n:
print(a)
a, b = b, a+b
Že v mých testech to vypadá dobře, ale nemám náhled, když zveřejňuji odpovědi (a mělo by to být !!!) Pokud to nevyjde, není to moje chyba
Podívejte se na příklady, které uvádí Sebastian Pölsterl ve svém tutoriálu PyGTK 3, Sebastian neumisťuje štítky.
Příklad:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html#example
můžete vidět celý Sebastianův návod.
Nevím, co máte na mysli. To, co říkám, je, že zde, v příspěvcích, není možné použít HTML tag «CODE», takže to, co zadáte jako kód a vyjde dobře odsazené. Na stránce, na kterou odkazujete, pokud uvidíte zdroje stránky, uvidíte, že nepoužívá CODE, ale používá jiné oddělovače HTML.
Není to proti kódu, který jste vložili, ale spíše upozorňuje na chybu v systému zveřejňování tohoto webu. Což snad mohou administrátoři opravit.
Když mluvím o značkách, samozřejmě mluvím o HTML, ne o Pythonu. V každém případě, pokud vložíte kód bez odsazení do Pythonu, nebude to fungovat. Pokud nováček přijde a zkopíruje kód tak, jak je uveden v tomto příspěvku, a pokusí se ho spustit, neuspěje. Možná jste frustrovaní, protože jste nováček. Chyba opět není vaše; a v mé okamžité předchozí odpovědi to, co jsem udělal, bylo dát způsob, jak vyřešit problém z úrovně uživatel-kdo-příspěvky.
Máte naprostou pravdu, místo kopírování kódu jsem měl nahrát fotografie.
ukázat, jak jsou příkazy správně seřazeny v PyGTK 3.
K programování pomocí pythonu doporučuji použít Eclipse s pluginem PyDev nebo Pychar m
Jak bylo uvedeno výše, proto nemám rád python kvůli odsazení. Jak jsme viděli, kopírování a vkládání nebude fungovat, což se nestává u jiných jazyků, jako jsou C, Java, PHP atd.
V případě čitelnosti použijeme zkrášlovač kódu (jako http://indentcode.net/ ) a připraven,
Ošklivý je opravený, ale pokud není odsazení a logika se změní, ozveme se ..
Jsem v PyGTK nový, je možné v tomto jazyce komunikovat s shell skripty?
Děkujeme za návod.
Zdravím.