PyGTK 3: casharrada mini GUI ee Python + GTK + 3

Waxaan samayn doonnaa barnaamij yar oo leh PyGTK 3.0 oo sidoo kale u shaqeeya PyGTK 3.4. GUI-daani yar ayaa ku bari doonta sida barnaamij loogu qaybiyo laba ama in ka badan oo faylal ah.

Waxaad booqan kartaa casharka Sebastian Pölsterl ee PyGTK 3 cusub, halkan waa casharka cusub, waxaan ka tagayaa xiriirka:

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

Kani waa barta Sebastian.

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

Dhaleeceyn uu tababarkan u soo jeediyey Sebastian ayaa ah in aanu barin sida barnaamij loogu qaybiyo qaybo ama dhawr faylal, way fiicnaan lahayd haddii uu tusaalooyin tuso sida loogu sameeyo PyGTK 3.

Dhammaan barnaamijyada waaweyn iyo kuwa adag ayaa loo qaybiyaa faylal badan feylashana xitaa waxaa lagu meeleeyaa tusayaal kale, taasi waa, waxay ku yaalliin faylal kala duwan.

Aynu ku bilowno tusaalaha yar:

Waa kuwan nambarka qoraalka oo ku jira hal feyl oo la yiraahdo gui.py. Waxaan fureynaa Tifatiraha qoraalka Gedit ama tifaftiraha aan sida ugu badan u isticmaalno, waxaan nuqul ka dhignaa lambarka hoose oo waxaan u keydinaa gui.py

laga bilaabo gi.repository import Gtk class gui (): def on_open_clicked (self, button): print "\" Open \ "badhanka waxaa la riixay" def on_close_clicked (self, button): print "Codsiga Xidhitaanka" Gtk.main_quit () def __init__ (is): self.window = Gtk.Window () self.window.connect ('delete-event', Gtk.main_quit) self.box = Gtk.Box () self.window.add (self.box) is. badhanka = Gtk.Button (calaamadda = 'Furan') self.button.connect ("guji", self.on_open_clicked) self.box.pack_start (self.button, Run, Run, 0) self.button = Gtk.Button ( sumadda = 'Xidho') self.button.connect ("guji", self.on_close_clicked) self.box.pack_start (self.button, Run, Run, 0) self.window.show_all () Gtk.main () haddii __name__ == '__main__': gui = gui ()

hore

def on_open_clicked (is, button): print "\" Furan \ "badhanka ayaa la riixay"

Waa shaqo ka hawlgasha terminalka markaan riixno badhanka furan. Calaamadaha lagu dhaqaajinayo waa:

self.button.connect ("la gujiyay", self.on_open_clicked) def on_close_clicked (is, badhanka): daabac "Codsiga Xidhitaanka" Gtk.main_quit ()

Waa shaqo la hawlgeliyo markaan dhagsano badhanka dhow.

xir barnaamijka aan wadno.

calaamadaha lagu dhaqaajinayo waa

self.button.connect ("la gujiyay", self.on_close_clicked) laga keenay gi.repository import Gtk ### waxaan ka codsaneynaa maktabadaha PyGTK ### class gui (): Qeexitaanka fasalka ### ee loo yaqaan gui waa fasalka ugu weyn # ##

Bayaanka Widgets-ka: widget-yada ayaa ah barnaamij ay sii qorsheeyeen maktabadaha GUI ee aan adeegsanno. Tusaale ahaan, widget-yada ayaa ah badhan, daaqad, sanduuq, iwm. Kuwani waa widget-yada aan ku shaacino barnaamijkeenna.

self.window = Gtk.Window () ### window ### self.box = Gtk.Box () ### box #### self.button = Gtk.Button (calaamadda = 'Furan') ### # furaha furan #### self.button = Gtk.Button (calaamadda = 'Xidh') #### badhanka dhow #### self.window.add (self.box) #### sanduuqa ayaa ku jira daaqada loo yaqaan daaqada #### self.box.pack_start (self.button, Run, Run, 0) ##### badhanka ayaa ku jira sanduuqa loo yaqaan sanduuqa ### self.window.show_all () ## # waxaan muujineynaa daaqada oo dhan ### gui = gui () ### abuur gui shay ####

Waxaan barnaamijkayaga ku dhejineynaa galka looyaqaano fudud kiiskeena kumbuyuutarka

taranka

Waxaan ku fureynaa galka boostada, kiiskeyga waxaan u adeegsadaa Nemo ka yimid Linux Mint 14.

la xiray

Si loo soo ururiyo waxaan gelineynaa giraan.ka gui.py

eeg sawirka.

terminal

Hadda waxaan arki karnaa barnaamijkeenna yar ama aalad cusub oo lagu abuuray maktabadaha PyGTK 3

Waa daaqad fudud oo laba badhan leh.

Untitled

Hadda waxaan u kala qaybinaynaa barnaamijka saddex qaybood, ka dibna waxaan uga tagayaa lambarka saddexda faylal.

Faylka ugu horeeya gui.py

ka soo gelinta gi.repository Gtk ka baabi'inta soo dejinta baabi'inta io soo dejinta io class gui (baabi'i, io): def __init __ (is): 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 (calaamadda = 'Furan') self.button.connect ("guji", self.on_open_clicked ) self.box.pack_start (self.button, Run, Run, 0) self.button = Gtk.Button (calaamadda = 'Close') self.button.connect ("guji", self.on_close_clicked) self.box.pack_start) (self.button, True, True, 0) self.window.show_all () Gtk.main () if __name__ == '__main__': gui = gui ()

Faylka labaad ee io.py

class io: def on_open_clicked (self, button): print "\" Furan \ "badhanka ayaa la riixay"

Faylka sedexaad destro.py

ka gi.repository soo dejinta fasalka Gtk burbur: def on_close_clicked (is, badhanka): daabac "Codsiga Xidhitaanka" Gtk.main_quit ()

Waxaan ku dhejineynaa sedexda feylood isla galka kiiskeena, galka waxaa lagu magacaabaa fudud qeybsan.

fudud

Si loo soo ururiyo saddexda faylal. Waxaan ku fureynaa galka kumbuyuutarka kumbuyuutarka oo si fudud ayaan ugu soo celineynaa galka

python gui.py

Wax ka beddelka lagu sameeyay lambarka gui.py

ka baabi'inta soo dejinta baabi'iso ### bayaanka si aad u soo dhoofiso faylkeena destro.py ### ka soo dejinta io io ### bayaanka si aad u soo geliso faylkeena io.py ### fasalka gui (baabi'i, io): #### class main waxaan ku darnaa subclasses burburin iyo io ####

Waxaad arki kartaa xukunka

def on_open_clicked (is, button): print "\" Furan \ "badhanka ayaa la riixay"

Kuma jiro gui.py, waxay ku jirtaa faylka io.py

Xukunka

def on_close_clicked (is, badhanka):

Daabac "arjiga xiritaanka"
Gtk.main_quit ()

waxay ku taalaa faylka destro.py

Sidaas ayaan barnaamij ugu qaybin karnaa feylal badan oo ku yaal cinwaanno kala duwan isla waqti isku mid ah.

Dhinaca kale, Python waa tiir ka mid ah softiweerka bilaashka ah, waxaana loogu talagalay inuu la shaqeeyo GTK 3.6 /3.8, magaciisuna waa PyGTK. La qabsashada Python ee KDE waxaa loo yaqaan PyQT.

Python waxaa loo habeeyay Mac OS iyo WINDOWS.

Waxaan rajeynayaa in casharradan yar ee PyGTK3 ay waxtar kuu yeesheen. Waxay sameyn karaan dhammaan dhaliisha wax dhiseysa ee ay rabaan.

Waxaan kale oo aqaan qaar Gtk 3.4 /3.6 iyo Vala GTK 3.4 / 3.6.

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

Ugu dambeyntiina, dadka isticmaala KDE waxay ka cudurdaaranayaan inaynan u sameynin cashar yar oo KDE ah.


Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

  1.   Rootiya 87 dijo

    In kde waxaan doorbidaa inaan isticmaalo kdevelop (waxaan u maleynayaa inay taasi tahay waxa loogu yeero) si loo abuuro gui fududaan laakiin wali waxaan haystaa waqti adag inaan helo nidaamyada si ay u dhacdo x wax: '(

  2.   st0rmt4il dijo

    Way fiicantahay kuwa naga mid ah ee adeegsada Python: D!

    Waad ku mahadsan tahay!

  3.   Pablo dijo

    Waad salaaman tihiin, in badan ayaan la socday bulshadaan mana hubo in tani ay tahay markii iigu horaysay ee aan wax ka faalloodo ama aan hore u sameeyay before (Aad looma siinin qorista faallooyinka websaydhka runtii) Arinta ayaa ah inaan sameeyo si aan talo ugu daayo Elav iyo KZKG ^ Gaara maamul ahaan, waxaana u maleynayaa inay fiicnaan laheyd in lagu daro qalab loogu talagalay midabaynta hada in dhawaanahan aan arko qoraalo badan oo koodh ku qoran luqado kala duwan. Waan ogahay inay jiraan waxbadan oo fiilooyin ah laakiin ma aanan isku dayin midna maxaa yeelay ma ihi isticmaale wordpress, sidaa darteed waxaan kaaga tagay inaad ka fikirto suurtagalnimada codsiga. Waxaan fursaddan uga faa’iideysanayaa inaan weydiiyo inta kale ee akhristayaasha sida ay u arkaan fikradda, maxaa yeelay waxaan ogahay inay jiraan dad halkaas jooga oo doorbida inay akhriyaan lambarka adoon wax qurxin ah lahayn. Waxaan ka cudurdaaranayaa haddii tan horeyba looga hadlay halkan oo la diiday sababo jira awgood, maadaama aanan xasuusanin inaan arkay dood ku saabsan mowduuca.

    1.    marianogaudix dijo

      Runtu waxay tahay waxaan jeclaan lahaa inaan helo ikhtiyaarka midabaynta qoraalka si aan u muujiyo koodhka luqadaha barnaamijyada.
      Taasi waxay caawin laheyd isticmaaleyaasha doonaya inay bartaan luuqadaha barnaamijka.

      Laakiin haye, sidoo kale waxaan ku qanacsanahay golaha iyo inaan ka wada tashan karno oo aan wax ku baran karno.

      1.    Waqti dheer 3000 dijo

        GNU Emacs wuu ka raaxo badan yahay, maxaa yeelay ugu yaraan waa inaad doorataa nooca hubiyaha luqadda ee aad rabto inaad ku shaqeyso (haddii aadan u baahnayn culeys badan ee processor-kaaga, isticmaal GNU Nano oo waxaad ugu raaxeysataa ugu yaraan sida ugu fiican).

        1.    marianogaudix dijo

          Elio waxaan ka hadleynaa WordPress. Laga hirgaliyay baloogga Desde Linux. Ma laha hawlaha midabaynta xarfaha dhejiska.

          1.    Waqti dheer 3000 dijo

            Oh waan ka xumahay.

        2.    dabogal 92 dijo

          Naaa emacs waa raaxo u leh kuwa leh 84 farood XD .., dadka caadiga ah, qoraalka qoraalka, sublimetext ama notepad ++ xd

          1.    Waqti dheer 3000 dijo

            Waxyaabaha aan macquul ahayn waa barashada makiinada qorista, taas oo loo baahan yahay si ay u awoodaan inay la tacaalaan GNU Emacs iyo kumbuyuutarradeeda gaaban iyo si fiican. Intaas waxaa sii dheer, GUI-keedu wuxuu kuu fududeynayaa inaad isticmaasho liiskeeda (waxaa loo isticmaali karaa Windows, laakiin laguma talinayo inaad ku sameyso qaab caadi ah laakiin leh amar dhaqso leh si aan win32 u qaadicin qoraalkaaga).

  4.   Kareem dijo

    Tababar aad u qabow. Laakiin markaa, habka loo yaqaan 'python source code' lama ururin, waa luqad la tarjumay.

    1.    giskard dijo

      Waxaa lagu soo ururin karaa koodh been abuur ah. Maaha luqad mashiin ee waa baay matalaysa wax wax turjubaanka, laakiin howsha waxaa loogu yeeraa sidoo kale la soo aruuriyay. Dareenkan, waxaa suurtagal ah in la yiraahdo wax baa la soo uruuriyay.

  5.   hty dijo

    Waxaa laga yaabaa inay fiican tahay in la barto pytgk2 maxaa yeelay nooca ugu dambeeya ee loo heli karo Windows waa 2.24. Taxanaha 3 waa mid muuqda oo maqnaanshihiisa ah. Afafka xunna waxay dhahaan gnome wuxuu jebiyaa dhammaan daloolada nooc kasta oo cusub.

    1.    marianogaudix dijo

      Waxaan barnaamij kaftan ah kula sameeyaa GTK 3.4 / 3.6 runtiina waxay jabinayaan dulqaadkaaga iyo madaxaaga, waa inaad dib uqortaa koodhka, hadda waan fahmay sababta dadka Linux Mint ay uga cawdaan GTK iyo mashruuca GNOME.
      Kuwa MINT waxaan ku raacsanahay GTK 2.4 taasi ma dhicin.

  6.   Carlos dijo

    Cashar wanaagsan iyo tixraacyo.
    Kaliya faahfaahin, maadaama koodhka la geliyay, galka Python waa qasab waana in lagu ixtiraamo lambarka tusaalaha.

    Waad ku mahadsan tahay!

    1.    marianogaudix dijo

      Ma sharxi kartaa waxa aqoonsiyada qasabka ah ee Python ka kooban yihiin? Runta markaan kuu sheego, weligay ma maqlin taas.Waxaan si xun ula qabsaday mac-hadka PyGTK 2/3 ee Ingiriisiga waxaana laga yaabaa inaan iska indhatiro.

      1.    giskard dijo

        In Python-ka uma isticmaashid furayaasha sida ku jirta C ama bilowga / dhamaadka baloogyada sidii Pascal oo kale, laakiin wax walba waxaa lagu fahamsan yahay galka aad siineyso koodhka. Taasi waa, baloogyada waxaa loo aqoonsan yahay inay ku jiraan. Waa muuqaal aan si gaar ah u jeclahay. Waad iska ilaalinaysaa inaad qorto furayaasha iyo wixii la mid ah.

        1.    dabogal 92 dijo

          Kaliya ma jecli taas, waxay umuuqataa mid ka fudud in la dhigo labo fure oo yar ama std :: endl;, Intii la arko haddii khadka xd si fiican loo galiyay

          1.    Felipe dijo

            : p Macallinkaaga barnaamijku wuxuu kuu dhigayaa 0. Ama kaba sii darane waxay kaa eryi doonaan shaqadaada. Waxa ugu muhiimsan ayaa ah in koodhku yahay mid la aqrin karo dhammaan wixii la micno ah

          2.    dabogal 92 dijo

            ku dhammaanaya silsilado xiritaan ah, waxay iga dhigeysaa mid aad u sii akhrisan kara XD ..

          3.    giskard dijo

            Dhab ahaan ???


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

            Ma aragtaa? Indentations la'aan si fiican looma fahmin. Taasina waa mid fudud. Mid ka sii adag, isku-duwaha kaliya ayaa fahmaya. Arrintu waxay tahay, mar haddii AAD u baahan tahay inaad si uun u dhex gasho (bini-aadamku inay fahmaan koodhka) maxay u noqonaysaa wax aan loo baahnayn oo loo adeegsado kala-soocayaasha? Ku filan indentation waana intaas.

          4.    dabogal 92 dijo

            Dabcan, waxba lama fahmayo, sababtoo ah ma ixtiraamayso xeerarka qorista wanaagsan ee barnaamijka ku jira c / c ++. Wixii aad samaysay waxbay u yihiin wax kasta, sida buul ku shaqeynta, gudaheeda hawl gudaheeda shaqo kale oo gudaha ku jirta, markaa waxaan rabaa inaan ku arko xd haddii aad awoodo inaad fahanto.

          5.    dabogal 92 dijo

            habka, oo leh laba muuqaal, koodhkaas si fudud ayaa loo fahmi karaa xD

          6.    giskard dijo

            Wixii aan sameeyay waxaan u kasameeyay si aan kuugu muujiyo iyada oo aan lagugu dhex darin, inkasta oo ay uruuriso, waa mid aad u adag in la fahmo lambar kasta. Marka waxaad leedahay 2 sharci: Indent oo ku koobnaada xaddidayaasha. Laakiin taasi waa mid aan loo baahnayn. Python koodhka noocan oo kale ah turjumaanku si fudud uma aqbalo. Adiguna waxaad leedahay hal xeer oo keliya: Indent. Si fudud.
            Laakiin haye, qof walba dhadhankiisa.

          7.    Atheyus dijo

            Labaduba way fiican yihiin, kuwa laqeexay iyo kuwa aan laqabin, feker ahaanteyda waxaan doorbidaa semicolon ama qaabka ruby, oo lamid ah Python laakiin indentation-ka looma baahna.

            Tan ayaa sifiican loo fahmay: P:

            echo 'int main (int argc, char * argv []) {program_name = argv [0]; halka ((argc> 1) && (argv [1] [0] ==' - '))) {biiro (argv [ 1] [1]) {case 'v': verbose = 1; jab; kiiska 'o': out_file = & argv [1] [2]; jab; kiiska 'l': line_max = atoi (& argv [1] [2]); jebinta; default: fprintf (stderr, »Ikhtiyaar xun % s \ n », argv [1]); isticmaalka ();} ++ argv; –argc;} haddii (argc == 1) {do_file (" print.in ");} kale haddii {halka (argc> 1 ) {do_file (argv [1]); ++ argv; –argc;}} laabo (0);} '| perl -p -e 's / \ {/ \ {\ n \ t / g; s / \; / \; \ n \ t / g; s / \ t \} / \} / g;'

            Salaan 😀

      2.    giskard dijo

        Waxaan u maleynayaa in Carlos loola jeedo in meesha koodhku ka soo baxo aysan jirin wax indha-indheyn ah. Taasi oo leh nuqul & dhejis kaliya ma shaqeyn doonto. Ma aqaano haddii calaamaddu jirto marka la samaynayo qoraal inaad gasho lambarka luqadda. Way fiicnaan lahayd haddii ay dhigaan haddii aanu jirin.

        1.    giskard dijo

          Waxaan horeyba u arkay waxa dhibaatadu tahay: CODE Tag wuxuu tirtirayaa dhamaan meelaha banaan iyo tab (ma ahan inuu sidaa sameeyo !!!) Laakiin hadaad nbsp dul dhigto koodhku wuu fiicanyahay. A0 in hex (160 in dec) in kastoo aan u maleynayo inay ku xirnaan karto font (anigu garan maayo). Haddii la isticmaalo markaa waxay u soo baxdaa sidan:

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

          In imtixaanadayda ay u egtahay wax fiican, laakiin ma haysto wax aragti ah markaan jawaabo qoro (waana inay taasi jirtaa !!!) Haddii aysan soo bixin, aniga khaladkayga ma lihi

          1.    marianogaudix dijo

            Eeg tusaalayaasha uu Sebastian Pölsterl ku bixinayo casharradiisa PyGTK 3, Sebastian ma dhigo sumado.

            Tusaale:

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

            waad arki kartaa dhammaan barashada Sebastian.

          2.    giskard dijo

            Garan maayo waxaad u jeeddo. Waxa aan leeyahay waa halkaan, qoraalada, suuro gal ma ahan in la isticmaalo "CODE" HTML Tag si wixii aad koodh u dhigato oo ay si fiican uga soo baxaan. Bogga aad tixraacayso, haddii aad aragto ilaha bogga, waxaad arki doontaa inuusan adeegsanayn CODE laakiin uu adeegsado xaddidayaasha kale ee HTML.
            Kama soo horjeedo koodhka aad gelisay laakiin waa inaad farta ku fiiqaan cillad ku jirta nidaamka dhajinta ee boggan. Waa kuwee, laga yaabee, in maamulladu hagaajin karaan.
            Markii aan ka hadlayo tags waxaan si cad uga hadlayaa HTML, ma ahan Python. Sikastaba xaalku ha ahaadee, hadaad koodhadh geliso bilaa sumad Python kaliya ma shaqeynayso. Haddii newbie yimaado oo nuqul ka sameysto nambarka sida ku cad qoraalkan oo uu isku dayo inuu maamulo, wuu ku guuldareysan doonaa. Waad niyad jabi kartaa maadaama aad cusub tahay. Haddana, khaladku adiga ma lihid; iyo jawaabteydii hore ee aan bixiyay wixii aan sameeyay waxay ahayd wado aan ku xaliyo dhibaatada heerka isticmaala-yaa-dhajiyay.

          3.    marianogaudix dijo

            Xaqiiqdii waad saxantahay, waxay ahayd inaan sawiro soo galiyo intii aan koodh koobi lahaa.
            si loo muujiyo sida odhaahda si habboon loogu dalbado PyGTK 3.

  7.   Felipe dijo

    Si aan ugula barnaamijto Python waxaan kugula talinayaa inaad isticmaasho Eclipse oo leh qalabka PyDev, ama Pychar m

  8.   louis dijo

    Sidaan kor ku soo sheegnay, waa sababta aanan u jeclayn boorta, sababtoo ah indentations. Sidaan aragnay, sameynta nuqul & dhejis ma shaqeyn doonto, taas oo aan ku dhicin afafka kale sida C, Java, PHP, iwm.

    Waxyaabaha aqrinta, waxaan codsaneynaa qurxin koodh (sida http://indentcode.net/ ) iyo diyaar,

    Foolxumada waa la hagaajiyaa, laakiin hadaan wax la gallin oo caqliga la beddelo, waan ka dhawaajinaynaa ..

  9.   Carlos dijo

    Waxaan ku cusubahay PyGTK, suurta gal ma tahay in lala falgalo qoraalo qolof ah oo ku qoran luqaddan?

    1.    Hola dijo

      Waad ku mahadsantahay casharka.

      Thanks.