PyGTK 3: mini tutorial GUI miaraka amin'i Python + GTK + 3

Hanao programa kely amin'ny PyGTK 3.0 izahay izay miasa ihany koa amin'ny PyGTK 3.4. Ity GUI kely ity dia hampianatra anao ny fizarana programa ho rakitra roa na maromaro.

Azonao atao ny mitsidika ny fampianaran'i Sebastian Pölsterl momba ny PyGTK 3 vaovao, ity misy tutorial vaovao, avelako ny rohy:

http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html

Ity ny bilaogin'i Sebastian.

http://k-d-w.org/node/88

Ny fitsikerana an'ity fampianarana nataon'i Sebastian ity dia ny tsy fampianarany hizara fizarana programa ho ampahany na ho rakitra maromaro, tsara izany raha naneho ohatra iray momba ny fanaovana azy amin'ny PyGTK 3 izy.

Ny programa lehibe sy sarotra rehetra dia mizara ho rakitra marobe ary ny rakitra dia apetraka amin'ny lahatahiry hafa, izany hoe, hita ao anaty lahatahiry samihafa izy ireo.

Andao atomboka amin'ny ohatra kely:

Ity ny kaody fanoratana ao anaty rakitra iray antsoina hoe gui.py. Manokatra ny editeran-dahatsoratra Gedit na ny tonian-dahatsoratra ampiasainay indrindra izahay, maka tahaka ny kaody etsy ambany izahay ary tehirizinay ho gui.py

avy amin'ny gi.repository import Gtk class gui (): def on_open_clicked (tena, bokotra): pirinty "\" Open \ "bokotra no tsindry" def on_close_clicked (tena, bokotra): pirinty "Fampiharana fanidiana" Gtk.main_quit () def __init__ (tena): self.window = Gtk.Window () self.window.connect ('Delete-event', Gtk.main_quit) self.box = Gtk.Box () self.window.add (self.box) tena. bokotra = Gtk Button (label = 'Open') self.button.connect ("tsindry", self.on_open_clicked) self.box.pack_start (self.button, True, True, 0) self.button = Gtk Button ( label = 'Close') self.button.connect ("clicked", self.on_close_clicked) self.box.pack_start (self.button, True, True, 0) self.window.show_all () Gtk.main () raha __name__ == '__main__': gui = gui ()

fronton

def on_open_clicked (tena, bokotra): pirinty ny bokotra "\" Open \ "

Izy io dia fiasa izay ampandehanana ao amin'ny terminal rehefa tsindrio ny bokotra misokatra. Ny famantarana hamelona azy dia:

self.

Izy io dia fiasa izay ampandehanana rehefa tsindrio ny bokotra akaiky.

farano ny programa tantaninay.

ny famantarana hamelona azy dia

self.button.connect ("tsindry", self.on_close_clicked) avy amin'ny gi.repository import Gtk ### dia miantso ireo tranomboky PyGTK ### kilasy gui () izahay: ### ny famaritana an-dakilasy antsoina hoe gui no kilasy lehibe # ##

Fanambarana ny Widgets: ny widget dia programa efa voalahatr'ireo tranomboky GUI ampiasainay. Ohatra, ny widget dia bokotra, varavarankely, boaty sns. Ireo no widgets izay ambaranay amin'ny programa.

self.window = Gtk.Window () ### varavarankely ### self.box = Gtk.Box () ### boaty #### self.button = Gtk Button (label = 'Open') ### # bokotra misokatra #### self.button = Gtk Button (label = 'Close') #### bokotra akaiky #### self.window.add (self.box) #### misy ilay boaty ny varavarankely antsoina hoe varavarankely #### self.box.pack_start (self.button, True, True, 0) #### ny bokotra dia hita ao amin'ilay boaty antsoina hoe boaty ### self.window.show_all () ## # asehontsika ny varavarankely manontolo ### gui = gui () ### mamorona zavatra gui ####

Ataontsika ao anaty fampirimana antsoina hoe tsotra amin'ny tranga misy eo amin'ny birao ny programa

matavy

Manokatra ny fampirimana amin'ny terminal izahay, raha mampiasa ahy dia mampiasa Nemo avy amin'ny Linux Mint 14 aho.

mihidy

Mba hanangonana dia apetrakao ao amin'ny terminal python gui.py

jereo ny sary.

alalan'ny terminal

Ankehitriny isika dia afaka mahita ny programa kely na widget vaovao noforonina niaraka tamin'ny tranomboky PyGTK 3

Izy io dia varavarankely tsotra misy bokotra roa.

 

Untitled

 

Izahay dia mizara ny programa ho telo, avy eo avelako ny kaody ho an'ireo rakitra telo.

Fafao gui.py voalohany

avy gi.repository import Gtk avy manimba import manimba avy io import io class gui (manimba, 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 = 'Open') self.button.connect ("clicked", self.on_open_clicked ) self.box.pack_start (self.button, True, True, 0) self.button = Gtk Button (label = 'Close') self.button.connect ("clicked", self.on_close_clicked) self.box.pack_start (self.button, True, True, 0) self.window.show_all () Gtk.main () raha __name__ == '__main__': gui = gui ()

Fisie faharoa.py faharoa

class io: def on_open_clicked (tena, bokotra): pirinty ny bokotra "\" Open \ "dia voatsindry"

Fahatelon'ny rakitra destr.py

avy amin'ny gi.repository import Gtk class manimba: def on_close_clicked (tena, bokotra): pirinty "Fampiharana fanakatonana" Gtk.main_quit ()

Mametraka ireo fisie telo amin'ny fampirimana iray ihany izahay, ny fisie dia antsoina hoe mizara roa.

tsotra

Mba handrafetana ireo rakitra telo. Manokatra ny fampirimana amin'ny terminal izahay ary mamerina azy fotsiny ao amin'ny terminal

python gui.py

Fanovana natao tamin'ny kaody gui.py

avy amin'ny manimba import manimba ### fanambarana mba manafatra ny fisie azonay manimba.py ### avy io import io ### fanambarana mba manafatra ny rakitra io.py ### kilasy gui (manimba, io): #### ho an'ny kilasy main izahay manampy ny subclassens manimba ary io ####

Hitanao io fehezanteny io

def on_open_clicked (tena, bokotra): pirinty ny bokotra "\" Open \ "

Tsy ao anaty gui.py izy io, fa ao amin'ny fisie io.py

didim-pitsarana

def on_close_clicked (tena, bokotra):

pirinty "Fampiharana fanidiana"
Gtk.main_quit ()

dia hita ao amin'ny fisie harm.py

Azontsika atao ny mizara programa amin'ny rakitra maro ao amin'ny lahatahiry samihafa miaraka.

Etsy ankilany, Python dia andry misy rindrambaiko maimaim-poana, ary ampifanarahana hiasa amin'ny GTK 3.6 /3.8, PyGTK no anarany. Python's adaptation for KDE dia antsoina hoe PyQT.

Python dia natao ho an'ny Mac OS sy WINDOWS.

Manantena aho fa nanampy anao ity tutorial mini PyGTK3 ity. Azon'izy ireo atao ny manao ny tsikera manorina rehetra tadiaviny.

Fantatro ihany koa ny sasany Gtk 3.4 /3.6 sy Vala GTK 3.4 / 3.6.

http://www.youtube.com/watch?v=9ckRn_sx8CE

Farany, miala tsiny ireo mpampiasa KDE fa tsy nanao mini tutorial ho an'ny KDE.


Ny atin'ny lahatsoratra dia manaraka ny fitsipiky ny etika fanonta. Raha hitatitra tsindry diso eto.

33 hevitra, avelao ny anao

Avelao ny hevitrao

Ny adiresy email dia tsy ho namoaka. Mitaky saha dia marika amin'ny *

*

*

  1. Tompon'andraikitra amin'ny data: Miguel Ángel Gatón
  2. Tanjon'ny angona: Control SPAM, fitantanana hevitra.
  3. Legitimation: Ny fanekenao
  4. Fifandraisana momba ny angona: Tsy hampitaina amin'ny antoko fahatelo ny angona raha tsy amin'ny adidy ara-dalàna.
  5. Fitehirizana angona: Database nomen'ny Occentus Networks (EU)
  6. Zo: Amin'ny fotoana rehetra, azonao atao ny mametra, mamerina ary mamafa ny mombamomba anao.

  1.   Rots87 dia hoy izy:

    Ao amin'ny kde dia aleoko mampiasa kdevelop (heveriko fa izany no iantsoana azy) hamoronana ilay gui mora foana nefa mbola sahirana mafy ihany aho mahita ny fizotrany hitrangan'izany x zavatra: '(

  2.   St0rmt4il dia hoy izy:

    Tsara ho antsika izay mampiasa Python: D!

    Misaotra!

  3.   Pablo dia hoy izy:

    Salama, efa ela no nanarahako an'ity vondrom-piarahamonina ity ary tsy dia azoko antoka hoe ity no fotoana voalohany nanehoako hevitra na efa nataoko talohan'ny soy (tsy dia omena ahy loatra ny manoratra hevitra amin'ny tranonkala marina). Ny zavatra ataoko dia ny mamela ny soso-kevitra amin'i Elav sy KZKG ^ Gaara ho mpitantana, ary heveriko fa mety tsara ny manampy plugin ho an'ny fandokoana ny syntax ankehitriny izay tato ho ato dia nahita lahatsoratra maro hafa miaraka amina kaody amin'ny fiteny fandefasana fandaharana samihafa aho. Fantatro fa misy plugins vitsivitsy, saingy mbola tsy nanandrana aho satria tsy mpampiasa wordpress, ka avelako ianao hieritreritra ny fahaizan'ny fangatahana. Manararaotra an'izany aho hanontany ny mpamaky sisa ny hevitr'izy ireo momba ilay hevitra, satria fantatro fa misy olona any izay maniry hamaky ilay kaody tsy misy haingo. Miala tsiny aho raha efa nohazavaina teto izany ary nolavina izy noho ny antony sasany, satria tsy tadidiko ny nahita adihevitra momba io lohahevitra io.

    1.    marianogaudix dia hoy izy:

      Ny marina dia tiako ny hanana safidy handokoana ny syntax mba hanasongadinana ny kaody an'ireo fiteny fandaharana.
      Hanampy ireo mpampiasa te hianatra fiteny fandaharana izany.

      Saingy, mahazo aina ihany koa aho amin'ny forum ary afaka miara-midinika sy mianatra isika.

      1.    eliotime3000 dia hoy izy:

        Ny GNU Emacs dia mahazo aina kokoa, satria farafaharatsiny mba mila misafidy izay mpanamarika fiteny fandaharana tianao hiasa (raha tsy mila lanja bebe kokoa ho an'ny mpanera anao ianao dia ampiasao ny GNU Nano ary ankafizo ny minimalism raha tsara indrindra).

        1.    marianogaudix dia hoy izy:

          Elio dia miresaka momba an'i Worpress izahay. Ampiharina ao amin'ny bilaogy From Linux. Tsy manana fiasa handokoana ny litera an'ireo paositra ireo.

          1.    eliotime3000 dia hoy izy:

            Miala tsiny aho.

        2.    pandev92 dia hoy izy:

          Naaa emacs dia mahazo aina ho an'ireo manana 84 rantsan-tànana XD .., olona normal, mpiara-mianatra, sublimetext na notepad ++ xd

          1.    eliotime3000 dia hoy izy:

            Ny zavatra tsy azo tsapain-tanana dia ny tsy nianatra fanoratana, izay takiana mba hahafahana mitantana tsara ny GNU Emacs sy ny hitsin-dàlan'ny keyboard-ny. Ho fanampin'izany, ny GUI-nao dia manamora ny fampiasanao ny menus-ny (azo ampiasaina amin'ny Windows izy io, saingy tsy tokony hasiana manao azy amin'ny maody mahazatra fa amin'ny maody prompt de commande mba tsy hanaovan'i win32 ny script anao).

  4.   Carper dia hoy izy:

    Tutorial tena milay. Fa raha ny fanazavana, ny kaody loharano python dia tsy voaangona, fiteny adika io.

    1.    Giskard dia hoy izy:

      Afaka atambatra ho kaody pseudo izy io. Tsy fitenin'ny masinina fa ny bytes izay maneho zavatra amin'ny mpandika teny, fa ny fizotrany kosa dia antsoina hoe voaangona. Amin'io lafiny io dia azo atao ny milaza fa misy zavatra voangona.

  5.   hty dia hoy izy:

    Angamba tsara kokoa ny mianatra pytgk2 satria ny kinova farany azo alaina amin'ny Windows dia 2.24. Ny andiany 3 dia miharihary amin'ny tsy fisiany. Ary ireo lela ratsy dia milaza fa ny gnome dia mamaky ny apis isaky ny kinova vaovao.

    1.    marianogaudix dia hoy izy:

      Mamindra mockup amin'ny GTK 3.4 / 3.6 aho ary ny tena marina dia manaparitaka ny faharetanao sy ny lohanao izy ireo, mila manoratra ny kaody ianao, azoko izao ny antony itarainan'ny Linux Mint momba ny GTK sy ny tetikasa GNOME.
      Ho an'ireo MINT dia ekeko ny GTK 2.4 fa tsy izany no nitranga.

  6.   Carlos dia hoy izy:

    Tutorial sy referansa tsara.
    Antsipiriany fotsiny, satria napetraka ny kaody, ao amin'ny Python indentations dia voatery ary tokony hajaina amin'ny kaody ohatra.

    Misaotra!

    1.    marianogaudix dia hoy izy:

      Azonao atao ve ny manazava hoe inona ireo fanondroana tsy maintsy atao ao amin'ny Python? Lazaiko aminao ny marina, mbola tsy henoko mihitsy izany.Zatra ny forum PyGTK 2/3 amin'ny teny anglisy aho ary angamba tsy jereko.

      1.    Giskard dia hoy izy:

        Ao amin'ny Python dia tsy mampiasa fanalahidy ianao tahaka ny amin'ny C na fanombohana / famaranana toy ny ao amin'ny Pascal, fa ny zava-drehetra dia takatra amin'ny alàlan'ny indentation omenao ny kaody. Izany hoe, ireo sakana dia ekena fa misy indentika. Endri-javatra izay tiako indrindra izany. Sorohinao ny fanalahidy fanoratana sy ny zavatra toy izany.

        1.    pandev92 dia hoy izy:

          Tsy tiako fotsiny izany, toa tsotra kokoa ny mametraka fanalahidy kely roa na std :: endl;, noho ny fahitana azy raha tsara ny tabilao xd

          1.    Felipe dia hoy izy:

            : p Ny mpampianatra fandaharana ataonao dia hametraka 0 ho anao. Na ratsy kokoa, horoahin'izy ireo hiala amin'ny asanao ianao. Ny tena zava-dehibe dia ny famakiana ilay kaody miaraka amin'izay rehetra milaza izany

          2.    pandev92 dia hoy izy:

            mifarana amin'ny braces mihidy, mahatonga ahy XD ho mora vakina kokoa ..

          3.    Giskard dia hoy izy:

            Serieux ???


            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);}

            Hitanao? Raha tsy misy indentation dia tsy takatra tsara. Ary mora izany. Miaraka amin'ny sarotra kokoa, ny mpamorona ihany no mahatakatra azy. Ny zava-misy dia satria tsy maintsy miditra ao anatiny ianao (mba hahatakaran'ny olombelona ny kaody) nahoana no tsy tokony hatao izany ary mampiasa mpampisaraka? Ampy amin'ny indentation ary dia izay.

          4.    pandev92 dia hoy izy:

            Mazava ho azy, tsy misy takatra, satria tsy manaja ny fitsipiky ny fanoratana tsara ny programa amin'ny c / c ++ ianao. Ny nataonao dia manan-kery amin'ny zavatra rehetra, toy ny manao akany amin'ny fiasa iray, ao anaty fiasa ao anaty fiasa hafa izay ao anatin'ny iray hafa, avy eo tiako ho hita xd ianao raha azonao io.

          5.    pandev92 dia hoy izy:

            teny an-dalana, miaraka amin'ny endrika roa, mora takarina xD ilay kaody

          6.    Giskard dia hoy izy:

            Ny nataoko dia nataoko an-tsehatra mba hampisehoana aminao fa tsy misy fikolokoloana, na dia mitambatra aza izy, dia sarotra be ny mahatakatra kaody. Noho izany dia manana fitsipika 2 ianao: indent ary aforeto ireo delimiters. Saingy miverimberina izany. Ao amin'ny Python dia tsy eken'ny mpandika teny io kaody io. Ary iray ihany ny fitsipika anananao: Indent. Tsotra.
            Fa he, samy manana ny tiany avy izy rehetra.

          7.    Atheyus dia hoy izy:

            Samy tsara, ny miforitra ary ny tsy mitazona indry, raha ny fahitako azy dia aleoko ny fomba semikolona na robina, mitovy amin'ny python fa ny filentehana tsy ilaina.

            Takatra kokoa izany: P:

            echo 'int main (int argc, char * argv []) {program_name = argv [0]; raha ((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, »Safidy ratsy % s \ n », argv [1]); fampiasana ();} ++ argv; –argc;} raha (argc == 1) {do_file (" print.in ");} hafa {raha (argc> 1 ) {do_file (argv [1]); ++ argv; –argc;}} fiverenana (0);} '| perl -p -e 's / \ {/ \ {\ n \ t / g; s / \; / \; \ n \ t / g; s / \ t \} / \} / g;'

            Miarahaba 😀

      2.    Giskard dia hoy izy:

        Heveriko fa ny dikan'i Carlos dia hoe rehefa mivoaka ilay kaody dia tsy misy indents ireo. Izay miaraka amin'ny kopia sy petaka tsy mety mandeha. Tsy haiko raha misy ny tag rehefa mamorona lahatsoratra hiditra kaody fiteny. Mety tsara raha apetrak'izy ireo izany raha tsy misy izany.

        1.    Giskard dia hoy izy:

          Efa hitako ny olana: ny CODE Tag dia manala ny habaka sy ny takelaka rehetra (tsy tokony hatao izany !!!) Fa raha apetrakao ny nbsp dia tsara ny fehezan-dalàna. A0 in hex (160 in dec) na dia heveriko fa mety hiankina amin'ny endri-tsoratra (tsy haiko izany). Raha ampiasaina dia mivoaka toy izao:

          def fib(n):
              a, b = 0, 1
              while a < n:
                  print(a)
                  a, b = b, a+b

          Tsara izany amin'ny fitsapana ataoko, saingy tsy manana topi-maso aho rehefa mandefa valiny (ary tokony hisy izany !!!) Raha tsy mivoaka izany dia tsy izaho no diso

          1.    marianogaudix dia hoy izy:

            Jereo ireo ohatra omen'i Sebastian Pölsterl ao amin'ny tutorial PyGTK 3 azy, tsy mametraka marika i Sebastian.

            Ohatra:

            http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html#example

            azonao jerena daholo ny lesona fampianaran'i Sebastian.

          2.    Giskard dia hoy izy:

            Tsy haiko izay tianao holazaina. Ny lazaiko dia eto, amin'ny paositra, tsy azo atao ny mampiasa ny Tag HTML «CODE» ka izay apetrakao ho kaody ary mivoaka miloko tsara. Ao amin'ny pejy tadiavinao, raha mahita ny loharano takelaka ianao dia ho hitanao fa tsy mampiasa CODE izy io fa mampiasa delimiters HTML hafa.
            Tsy mifanohitra amin'ny kaody apetrakao izany fa kosa manondro lesoka ao amin'ny rafitra fandefasana ity tranonkala ity. Izay, angamba, ny admin afaka manamboatra.
            Rehefa miresaka momba ny tag aho dia mazava ho azy fa miresaka momba ny HTML aho fa tsy Python. Na ahoana na ahoana, raha mametraka kaody tsy asiana indentation ao amin'ny Python ianao dia tsy mandeha izany. Raha misy zazavavikely tonga ka mandika ny kaody araka ny hita amin'ity lahatsoratra ity ary manandrana mihazakazaka azy dia tsy hahomby izy. Mety ho sosotra ianao satria vaovao. Averina indray fa tsy anao ny lesoka; ary tamin'ny valinteniko teo aloha teo aloha izay nataoko dia manome fomba iray hamahana ny olana amin'ny ambaratonga mpampiasa-iza-mandefa.

          3.    marianogaudix dia hoy izy:

            Tena marina ny anao, tokony nametraka sary aho fa tsy maka tahaka ilay kaody.
            hanehoana ny fomba fandefasana araka ny tokony ho izy ny fehezan-teny ao amin'ny PyGTK 3.

  7.   Felipe dia hoy izy:

    Raha te hampiasa programa amin'ny python aho dia manoro hevitra ny hampiasa Eclipse miaraka amin'ny plugin PyDev, na i Pychar m

  8.   Luix dia hoy izy:

    Araka ny efa voalaza tetsy ambony, izany no tsy tiako ny python, noho ny filentehana. Araka ny efa hitantsika, ny fanaovana kopia & petaka dia tsy handeha, izay tsy hitranga amin'ny fiteny hafa toy ny C, Java, PHP, sns.

    Ny zavatra mora vakiana, mampihatra hatsaran-tarehy kaody isika (toa http://indentcode.net/ ) ary vonona,

    Raikitra ny zavatra ratsy tarehy, fa raha tsy misy fikolokoloana ary ovaina ny lojika dia feonay ...

  9.   Carlos dia hoy izy:

    Vaovao amin'ny PyGTK aho, azo atao ve ny mifanerasera amin'ny script amin'ny akorandriaka amin'ity fiteny ity?

    1.    Hola dia hoy izy:

      Misaotra tamin'ny tutorial.

      Fiarahabana.