Ang pagbuo ng mga application na may Python 3, Glade at GTK + 3 sa Windows

Pagpapakilala

Sa GNU / Linux pagbuo ng mga application na may Python 3, ang Glade at GTK + 3 ay napakadali, ang mga pakete ay dumating sa pamamagitan ng default sa karamihan ng mga pamamahagi.

Sa pamamagitan ng glade maaari kaming lumikha ng mga interface ng gumagamit nang mabilis at madali at pagkatapos ay gamitin ang mga ito kasabay ng Python. Upang makamit ito ginagamit mo PyGObject salamat sa sistema ng pagsisiyasat na inaalok ng GNOME, na ginagawang mas madali ang Rapid Application Development (RAD); posible ring gamitin ang aming mga interface na nilikha gamit ang Glade mula sa iba pang mga wika ng programa.

Ang problema ay nangyayari kapag nais naming gamitin ang aming mga application sa Microsoft Windows, dahil hanggang kamakailan lamang ang mga package para sa sistemang ito ay hindi opisyal na umiiral.

Sa tutorial na ito nilalayon na ang mga application na nagawa sa GNU / Linux gamit ang Python 3 at GTK + 3 ay tumatakbo nang walang mga problema sa Windows.

Mga Kinakailangan

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 o mas mataas (taga-disenyo ng GUI)
  • pygobject

Pag-install sa Windows

Magsisimula ito sa pamamagitan ng paglikha ng isang folder na tinawag software o isa pa sa iyong kagustuhan at mai-save namin dito ang lahat ng mga package na na-download.

Mag-download ng mga package sa pag-install

I-download ang Python 3.3

Maaari itong ma-download mula sa opisyal na pahina ng Python python.org

Mag-download ng installer ng Python

Mag-download ng installer ng Python

Sa pamamagitan ng pag-click sa link (Windows Installer) mag-download ang installer ng Python.

I-download ang Glade

I-download ang site: glade.gnome.org

Ang parehong mga bersyon ng Python at Glade ay 32-bit, ngunit tumatakbo nang walang mga problema sa mga 64-bit na system

Pahina ng Glade

Pahina ng Glade

Mag-download ng PyGObject

I-download ang site: https://wiki.gnome.org/PyGObject

Dapat naming i-download ang bersyon para sa GTK + 3

PyGObject

PyGObject

PyGObject sa Google code

PyGObject sa Google code

Pag-install ng mga pakete

Sa hanggang sa puntong ito mayroon na kaming lahat ng na-download na mga pakete sa folder software at sa pag-download ng bawat pakete ay magsisimula muna kami sa pag-install ng Python.

Mga na-download na package

Mga na-download na package

Pag-install ng sawa

Ang pag-install ay napaka-simple, gagabay sa amin ng wizard ang proseso; Iniwan namin ang lahat ng mga pagpipilian na minarkahan bilang default.

Programa ng pag-install ng sawa

Programa ng pag-install ng sawa

Tulad ng nakikita sa imahe, ang Python ay naka-install sa folder C: \ Python33 \ bilang default, iniiwan namin ito tulad ng dati at nagpapatuloy sa pag-install.

Folder ng pag-install ng sawa

Folder ng pag-install ng sawa

Sa puntong ito ng pag-install pinili namin ang pagpipilian Magdagdag ng python.exe sa Path, na may layunin na kapag naglulunsad kami ng isang Python interpreter ito ay naisasagawa nang hindi kinakailangan na idagdag ito sa landas ng system nang manu-mano.

Magdagdag ng Python sa Path ng System

Magdagdag ng Python sa Path ng System

Pagkatapos ay tapusin namin ang pag-install at ang Python ay mai-install sa aming system.

Pag-install ng Glade

Ang pag-install ng glade ay hindi kumakatawan sa isang pangunahing komplikasyon, pinapatakbo namin ang programa ng pag-install at sundin ang mga hakbang ng wizard.

Mag-install ng glade

Mag-install ng glade

Pag-install ng PyGObject

Na-download namin ang package pygi-aio-3.4.2rev11.7z, kasama sa package na ito ang PyGObject para sa Python 3.3 at GTK + 3 na mga aklatan para sa Windows, na naka-compress sa 7-zip, i-unzip namin ito at magkakaroon kami ng isang folder na may sumusunod na nilalaman:

Mga nilalaman ng folder na pygi-aio-3.4.2rev11.7

Mga nilalaman ng folder na pygi-aio-3.4.2rev11.7

Ngayon kinokopya namin ang folder gtk a C: \ Python33 \ Lib \ site-packages na kung saan naka-install ang mga third party na pakete para sa Python.

Kopyahin ang folder na gtk

Kopyahin ang folder na gtk

Gtk folder sa C: \ Python33 \ Lib \ site-packages

Gtk folder sa C: \ Python33 \ Lib \ site-packages

Bumalik kami sa aming folder pygi-aio-3.4.2rev11 at binubuksan namin ang folder py33 para sa bersyon ng Python na 3.3

Mga nilalaman ng folder na py33

Mga nilalaman ng folder na py33

Pumili kami lahat ng nilalaman mula sa folder py33 at kinopya namin ito pabalik sa folder C: \ Python33 \ Lib \ site-packages, hihilingin sa amin na ihalo at i-overlap, pinagsasagot namin ang apirmado. Ang mga nilalaman ng folder mga site-package ito ay tulad ng ipinapakita sa sumusunod na imahe:

Kopyahin ang mga nilalaman ng folder ng py33 sa C: \ Python33 \ Lib \ site-packages

Kopyahin ang mga nilalaman ng folder ng py33 sa C: \ Python33 \ Lib \ site-packages

Sinusuri ang tamang pag-install ng PyGobject at GTK + 3

Upang suriin na ang aming pag-install ay tama, buksan namin ang Python IDLE at i-import ang mga aklatan ng GTK + 3 at kung wala kaming anumang mga mensahe ng error, ang lahat ay magawa nang tama.

from gi.repository import Gtk

Ang PyGobject at GTK + 3 ay na-install nang tama

Ang PyGobject at GTK + 3 ay na-install nang tama


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Joaquin dijo

    At bakit GTK? Hindi ba mas mahusay na bumuo sa QT? bukod sa multiplatform at maraming nagsasabi na ito ang hinaharap

    1.    artus dijo

      Sa gayon, ang dalawang mahusay na graphic library sa GNU / Linux desktop ay GTK at QT, ang bawat isa ay pipili ng isa na gusto nila. Walang dahilan para mag-away.

      Ang pagkakaiba sa pagitan ng GTK at QT ay ang huli ay isang balangkas, napakahusay talaga, ngunit ang pagiging isang balangkas ay gumugugol ng kaunti pang mga mapagkukunan.

      Halimbawa Mozilla Firefox, Google Chrome, LibreOffice at isang mahabang etcetera ay ginawa gamit ang GTK; Hindi ito nangangahulugan na ito ay mas mahusay kaysa sa QT, dapat piliin ng bawat isa ang isa na nababagay sa kanilang mga kagustuhan at pangangailangan, hindi namin nais na maging sanhi ng isang talakayan tungkol dito.

      1.    pandev92 dijo

        Google chrome mula sa bersyon 33, iwanan ang gtk.

  2.   rolo dijo

    at bakit ang paliwanag para sa windows at hindi linux

    1.    Germán dijo

      Dahil ba sa Linux ang lahat ay nakabalot na at sa mga opisyal na repository ng bawat distro? Halimbawa, sa Fedora, mayroon na akong naka-install na Python 3, Gtk + 3, at PyGobject bilang default. Kung gusto ko si Glade, "yum install glade" lang ito. Madali di ba? 🙂

    2.    artus dijo

      Dahil sa sinabi ni Germán, para sa mga pamamahagi ng GNU / Linux naka-package na sila at napakadaling i-install ang mga ito; halimbawa upang mai-install ang glade sa Debian ay napakasimple:
      aptitude install glade

  3.   Marcelo dijo

    Kung nais kong gamitin ang Python 2.7 magiging pareho ang mga hakbang?
    Malinaw na, ang pag-install ng 2.7-bit Python 32 (kahit na gagamitin mo ang 64-bit OS) at sa halip na ang folder ng py33, ang 2.7 ay mapupunta. Gagana ba ito
    Salamat sa inyo.

    1.    artus dijo

      Well oo, kung mayroon kang problema, mag-iwan sa akin ng isang komento.

      Swerte.

      1.    Marcelo dijo

        Salamat, sinubukan ko ito at sa ngayon gumagana ang "Hello world" para sa akin.

        Nakikita ko kung nakakakuha ako ng anumang magandang tutorial na pyGTK3 o kung ano man ang tawag nito at anumang mga problema, pansinin.

          1.    Marcelo dijo

            Caramba! Maraming salamat!

          2.    Marcelo dijo

            Ang pagsubok sa GTK3 na may Python 2.7 sa Windows at sumusunod sa tutorial. Sa ngayon lahat ng mga programa ay gumagana para sa akin, maliban sa isa sa Kabanata 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Binibigyan ako nito ng sumusunod na error:
            Traceback (pinakahuling huling tawag):
            File na "C: \ Users \ User \ Desktop \ test.py", linya 24, sa
            manalo = IconViewWindow ()
            I-file ang "C: \ Users \ User \ Desktop \ test.py", linya 19, sa __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon, 64, 0)
            I-file ang "C: \ Python27 \ lib \ site-packages \ gi \ type.py", linya 47, sa paggana
            ibalik ang impormasyon.invoke (* args, ** kwargs)
            GError: Icon 'gtk-cut' wala sa tema

            Sinubukan ko ito sa iba pang mga icon at hindi rin ito gumana. Kailangan ko bang mag-install ng isang tema? Salamat simula ngayon.

          3.    Marcelo dijo

            Hindi rin ang Halimbawa 19. I-drag and Drop.

            Ang pagpapaandar na tumatawag sa parehong mga kaso at doon ako nakakakuha ng isang error ay:

            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon_name, 16, 0)

            Hindi ko makita ang icon, ngunit sa ibang mga halimbawa maaari mo itong magamit. Nagbibigay lamang ito sa akin ng isang error kapag nais kong gamitin ito sa pagpapaandar na iyon (dito ang icon_name ay maaaring mapalitan ng isang halaga tulad ng Gtk.STOCK_CUT o kung ano man at nagbibigay ito ng eksaktong parehong error).

          4.    Marcelo dijo

            Patuloy kong kinakausap ang sarili ko. Ano ang gumagana para sa akin sa iba pang mga halimbawa ay ang pag-load ng mga imahe sa mga pindutan. Hindi ko mai-load ang mga icon na may pagpapaandar na nagmula sa dalawang halimbawang ibinigay ko kanina.

          5.    artus dijo

            Sa palagay ko ang error ay malinaw:
            GError: Icon 'gtk-cut' wala sa tema

            Maliwanag na hindi magagamit ang icon na iyon, gumamit ng isa pang icon. Marahil ay hindi isinasama ng nagpapanatili ng package ang mga icon ng tema o hindi ito matagpuan sa default na landas, gumamit ng pamamahagi ng GNU / Linux at tingnan kung lilitaw pa rin ang parehong error.

            Tungkol sa tanong 19, tila nauugnay ito sa bersyon ng PyGobject, sa tuktok ng dokumentasyon na sinasabi nito:

            nota
            Ang mga bersyon ng PyGObject = 3.0.3 ay kinakailangan para gumana ang mga sumusunod na halimbawa.

            Ang bersyon na mayroon ka ay 3.0, subukan ang isang pamamahagi ng GNU / Linux; at pagkatapos ay kailangan nating maghintay para sa kanila na i-update ang pakete (para sa Windows) o sa anumang kaso maaari mo itong mag-compile mismo.

            Pagbati at magpatuloy.

          6.    Marcelo dijo

            Sa Ubuntu lahat ng mga halimbawa ng tutorial na gumagana perpekto para sa akin. Sa Windows, hindi pa rin ito gumagana. Maghihintay ako. Ang isa pang hindi naglalakad ay ang halimbawa ng Spinner, na hindi gumagawa ng animasyon. Pagbati at pasasalamat.

  4.   Joshua dijo

    Sinundan ko ang tutorial sa pag-install at na-install ang lahat nang sunud-sunod.
    At isinasagawa ang sumusunod na code:
    mula sa gi.repository import Gtk

    klase FiestraPrincipal:
    def __init __ (sarili):
    filename = "/ data / dam / Python exemples / Saudoform"
    tagapagbuo = Gtk.builder ()
    konstruktor.add_from_file (filename)
    #dictary kung saan naiugnay namin ang mga sina sa mga kaganapan
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    konstruktor.connect_signals (sinais)
    # Nakakakuha kami ng isang sanggunian sa tagapaglarawan ng XML upang ma-access
    self.label = self.widgets_widget ("Label")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (sarili, widget):
    text = self.cadroTexto.get_text ()
    self.label.set_text ("wave% s"% text)

    kung __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk. Pangunahin ()

    Nakuha ko ang sagot na ito:
    Traceback (pinakahuling huling tawag):
    File «C: / Users / admin / Google Drive / test / SaudoForm.py», linya 3, sa
    mula sa gi.repository import Gtk
    File na "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", linya 27, sa
    mula sa ._gi import _API, Repository
    ImportError: Nabigo ang pag-load ng DLL: ang% 1 ay hindi isang wastong Win32 application.

    May nakakaalam kung ano ang problema, o kung ano ang maaaring maging solusyon nito.
    Maraming salamat sa inyo.

  5.   Jesus dijo

    Nakakainteres Natapos ko na ang pag-install sa linux, ngunit ang paliwanag para sa mga bintana ay mabuti, ngayon ay mayroon ako nito sa pareho. 😉

  6.   Rafael Carmona dijo

    Nakakatawa sa isang 7-bit na windows 32 sa unang pagkakataon.
    Sa isang Windows 7 64-bit, hindi ko ito mapapatakbo, palagi kong nakukuha ito;
    >>> mula sa gi.repository import Gtk
    Traceback (pinakahuling huling tawag):
    File «», linya 1, sa
    File na "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", linya 27, sa
    mula sa ._gi import _API
    ImportError: Nabigo ang pag-load ng DLL: Hindi natagpuan ang tinukoy na proseso.

    Sinubukan ko pa rin posible, nawala na ang ilusyon ko na i-install ito.

    1.    artus dijo

      Makikita mo ang mga 64-bit na aklatan na mayroon pa ring ilang mga bug, mangyaring i-install ang 32-bit na bersyon ng parehong sawa at GTK + upang wala kang mga problema.

      Hindi mo dapat mawala ang ilusyon 🙂

  7.   Richard dijo

    Kumusta, nakikipagtulungan ako sa python + gtk3, napakahusay ngayon nasa isang maliit na problema na nais kong baguhin ang icon sa aking form (window) sa kasong ito at mababago ko ito, salamat nang maaga, Pagbati

  8.   jors dijo

    mag-publish ng mga simpleng video kung paano mag-program sa gtk + 3 at simpleng mga pagbati sa tutorial

  9.   Jose dijo

    Mahusay na tutorial. Maraming salamat sa iyong pagsisikap. Pagbati.

  10.   jkmilo1030 dijo

    Ginawa ko ang lahat ng mga hakbang at nang magtiwala ako sa pag-install nakuha ko ang error na ito.

    Traceback (pinakahuling huling tawag):
    File «», linya 1, sa
    mula sa gi.repository import Gtk
    ImportError: Walang module na pinangalanang 'gi'