การพัฒนาแอปพลิเคชันด้วย Python 3, Glade และ GTK + 3 บน Windows

การแนะนำ

ในการพัฒนาแอปพลิเคชัน GNU / Linux ด้วย Python 3, Glade และ GTK + 3 นั้นง่ายมากแพ็กเกจจะมาตามค่าเริ่มต้นในการกระจายส่วนใหญ่

ตลอด บึง เราสามารถสร้างส่วนต่อประสานกับผู้ใช้ได้อย่างรวดเร็วและง่ายดายจากนั้นใช้ร่วมกับ Python เพื่อให้บรรลุสิ่งนี้คุณใช้ PyGObject ต้องขอบคุณระบบวิปัสสนาที่นำเสนอโดย GNOME ซึ่งช่วยอำนวยความสะดวกในการพัฒนาแอปพลิเคชันอย่างรวดเร็ว (RAD) นอกจากนี้ยังสามารถใช้อินเทอร์เฟซของเราที่สร้างขึ้นด้วย Glade จากภาษาโปรแกรมอื่น ๆ

ปัญหาเกิดขึ้นเมื่อเราต้องการใช้แอปพลิเคชันของเราใน Microsoft Windows เนื่องจากเมื่อเร็ว ๆ นี้ไม่มีแพ็คเกจอย่างเป็นทางการสำหรับระบบนี้

ด้วยบทช่วยสอนนี้มีจุดมุ่งหมายเพื่อให้แอปพลิเคชันที่ทำใน GNU / Linux โดยใช้ Python 3 และ GTK + 3 ทำงานได้โดยไม่มีปัญหาใน Windows

ความต้องการ

  • งูหลาม 3.3
  • Gtk + 3
  • Glade 3.14 หรือสูงกว่า (นักออกแบบ GUI)
  • pygobject

การติดตั้งบน Windows

จะเริ่มต้นด้วยการสร้างโฟลเดอร์ชื่อ ซอฟต์แวร์ หรืออื่นที่คุณต้องการและเราจะบันทึกแพคเกจทั้งหมดที่ดาวน์โหลดไว้

ดาวน์โหลดแพ็คเกจการติดตั้ง

ดาวน์โหลด Python 3.3

สามารถดาวน์โหลดได้จากหน้า Python อย่างเป็นทางการ python.org

ดาวน์โหลดตัวติดตั้ง Python

ดาวน์โหลดตัวติดตั้ง Python

โดยคลิกที่ลิงค์ (Windows Installer) โปรแกรมติดตั้ง Python จะดาวน์โหลด

ดาวน์โหลด Glade

ดาวน์โหลดเว็บไซต์: Glade.gnome.org

ทั้ง Python และ Glade เวอร์ชัน 32 บิต แต่ทำงานได้โดยไม่มีปัญหาในระบบ 64 บิต

หน้าเกลด

หน้าเกลด

ดาวน์โหลด PyGObject

ดาวน์โหลดเว็บไซต์: https://wiki.gnome.org/PyGObject

เราต้องดาวน์โหลดเวอร์ชันสำหรับ GTK + 3

PyGObject

PyGObject

PyGObject ในรหัส Google

PyGObject ในรหัส Google

การติดตั้งแพ็คเกจ

จนถึงจุดนี้เรามีแพ็คเกจที่ดาวน์โหลดทั้งหมดในโฟลเดอร์แล้ว ซอฟต์แวร์ และเมื่อเราดาวน์โหลดแต่ละแพ็คเกจเราจะเริ่มต้นด้วยการติดตั้ง Python ก่อน

แพ็คเกจที่ดาวน์โหลด

แพ็คเกจที่ดาวน์โหลด

การติดตั้ง Python

การติดตั้งนั้นง่ายมากตัวช่วยสร้างจะแนะนำเราตลอดกระบวนการ เราปล่อยให้ตัวเลือกทั้งหมดถูกทำเครื่องหมายโดยค่าเริ่มต้น

โปรแกรมติดตั้ง Python

โปรแกรมติดตั้ง Python

ดังที่เห็นในภาพ Python จะติดตั้งในโฟลเดอร์ C: \ Python33 \ ตามค่าเริ่มต้นเราปล่อยให้มันเป็นไปตามที่เป็นอยู่และดำเนินการติดตั้งต่อไป

โฟลเดอร์การติดตั้ง Python

โฟลเดอร์การติดตั้ง Python

ณ จุดนี้ของการติดตั้งเราเลือกตัวเลือก เพิ่ม python.exe ใน Pathโดยมีจุดประสงค์ว่าเมื่อเราเปิดตัวล่าม Python มันจะถูกเรียกใช้งานโดยไม่จำเป็นต้องเพิ่มเข้าไปในเส้นทางระบบด้วยตนเอง

เพิ่ม Python ใน System Path

เพิ่ม Python ใน System Path

เสร็จสิ้นการติดตั้งและ Python จะถูกติดตั้งในระบบของเรา

การติดตั้ง Glade

การติดตั้ง Glade ไม่ได้แสดงถึงความซับซ้อนที่สำคัญเราเรียกใช้โปรแกรมการติดตั้งและทำตามขั้นตอนของวิซาร์ด

ติดตั้ง glade

ติดตั้ง glade

การติดตั้ง PyGObject

เราได้ดาวน์โหลดแพคเกจ pygi-aio-3.4.2rev11.7zแพคเกจนี้รวม PyGObject สำหรับ Python 3.3 และ GTK + 3 ไลบรารีสำหรับ Windows ซึ่งบีบอัดด้วยไฟล์ 7-Zipเราเปิดเครื่องรูดและเราจะมีโฟลเดอร์ที่มีเนื้อหาต่อไปนี้:

เนื้อหาของโฟลเดอร์ pygi-aio-3.4.2rev11.7

เนื้อหาของโฟลเดอร์ pygi-aio-3.4.2rev11.7

ตอนนี้เราคัดลอกโฟลเดอร์ gtk a C: \ Python33 \ Lib \ ไซต์แพ็คเกจ ซึ่งเป็นที่ติดตั้งแพ็คเกจของบุคคลที่สามสำหรับ Python

คัดลอกโฟลเดอร์ gtk

คัดลอกโฟลเดอร์ gtk

โฟลเดอร์ Gtk ที่ C: \ Python33 \ Lib \ site-Packages

โฟลเดอร์ Gtk ที่ C: \ Python33 \ Lib \ site-Packages

เรากลับไปที่โฟลเดอร์ของเรา pygi-aio-3.4.2rev11 และเราเปิดโฟลเดอร์ py33 สำหรับเวอร์ชัน Python ที่ 3.3

เนื้อหาของโฟลเดอร์ py33

เนื้อหาของโฟลเดอร์ py33

เราเลือก เนื้อหาทั้งหมด โฟลเดอร์ py33 และเราคัดลอกกลับเข้าไปในโฟลเดอร์ C: \ Python33 \ Lib \ ไซต์แพ็คเกจเราจะถูกขอให้ผสมและเขียนทับเราตอบยืนยัน เนื้อหาของโฟลเดอร์ ไซต์แพ็คเกจ จะเป็นดังที่แสดงในภาพต่อไปนี้:

คัดลอกเนื้อหาของโฟลเดอร์ py33 ไปที่ C: \ Python33 \ Lib \ site-Packages

คัดลอกเนื้อหาของโฟลเดอร์ py33 ไปที่ C: \ Python33 \ Lib \ site-Packages

ตรวจสอบการติดตั้ง PyGobject และ GTK + 3 ที่ถูกต้อง

เพื่อตรวจสอบว่าการติดตั้งของเราถูกต้องเราเปิด Python IDLE และนำเข้าไลบรารี GTK + 3 และหากเราไม่มีข้อความแสดงข้อผิดพลาดทุกอย่างจะดำเนินการอย่างถูกต้อง

from gi.repository import Gtk

PyGobject และ GTK + 3 ติดตั้งอย่างถูกต้อง

PyGobject และ GTK + 3 ติดตั้งอย่างถูกต้อง


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Joaquin dijo

    แล้วทำไมต้อง GTK? การพัฒนาใน QT จะไม่ดีกว่าหรือ? นอกจากนี้ยังมีหลายแพลตฟอร์มและหลายคนบอกว่ามันคืออนาคต

    1.    อาร์ทัส dijo

      ไลบรารีกราฟิกที่ยอดเยี่ยมสองไลบรารีบนเดสก์ท็อป GNU / Linux คือ GTK และ QT แต่ละอันเลือกไลบรารีที่ต้องการ ไม่มีเหตุผลที่จะทะเลาะกัน

      ความแตกต่างระหว่าง GTK และ QT คือกรอบหลังเป็นเฟรมเวิร์กซึ่งดีมาก แต่การเป็นเฟรมเวิร์กนั้นจะใช้ทรัพยากรมากกว่าเล็กน้อย

      ตัวอย่างเช่น Mozilla Firefox, Google Chrome, LibreOffice และอื่น ๆ ที่ใช้ GTK; นี่ไม่ได้หมายความว่ามันดีกว่า QT ทุกคนควรเลือกสิ่งที่เหมาะกับความชอบและความต้องการของพวกเขาเราไม่ต้องการให้เกิดการอภิปรายเกี่ยวกับเรื่องนี้

      1.    pandev92 dijo

        Google chrome จากเวอร์ชัน 33 ออกจาก gtk

  2.   Rolo dijo

    และทำไมคำอธิบายสำหรับ windows ไม่ใช่ linux

    1.    เยอรมัน dijo

      เป็นเพราะใน Linux ทุกอย่างบรรจุอยู่แล้วและในที่เก็บอย่างเป็นทางการของแต่ละ distro หรือไม่? ตัวอย่างเช่นใน Fedora ฉันได้ติดตั้ง Python 3, Gtk + 3 และ PyGobject ตามค่าเริ่มต้นแล้ว ถ้าฉันต้องการ Glade ก็แค่ "yum install glade" ง่ายใช่มั้ย? 🙂

    2.    อาร์ทัส dijo

      เพราะอย่างที่Germánกล่าวไว้สำหรับ GNU / Linux ดิสทริบิวชันนั้นได้รับการบรรจุเรียบร้อยแล้วและติดตั้งได้ง่าย ตัวอย่างเช่นการติดตั้ง glade บน Debian นั้นง่ายมาก:
      ความถนัดติดตั้ง glade

  3.   มาร์เซโล dijo

    หากต้องการใช้ Python 2.7 ขั้นตอนจะเหมือนกันหรือไม่?
    เห็นได้ชัดว่าการติดตั้ง Python 2.7 32 บิต (แม้ว่าคุณจะใช้ระบบปฏิบัติการ 64 บิต) และแทนที่จะเป็นโฟลเดอร์ py33 2.7 ก็จะไป มันจะทำงาน?
    ขอบคุณ

    1.    อาร์ทัส dijo

      ใช่ถ้าคุณมีปัญหาโปรดแสดงความคิดเห็น

      Suerte

      1.    มาร์เซโล dijo

        ขอบคุณฉันได้ลองใช้แล้วและตอนนี้ "สวัสดีชาวโลก" ก็ใช้ได้ผลสำหรับฉัน

        ฉันดูว่าฉันจะได้รับบทช่วยสอน pyGTK3 ที่ดีหรืออะไรก็ตามที่เรียกว่าและปัญหาใด ๆ คำเตือน

        1.    อาร์ทัส dijo
          1.    มาร์เซโล dijo

            คาราบา! ขอบคุณมาก!

          2.    มาร์เซโล dijo

            ทดสอบ GTK3 ด้วย Python 2.7 บน Windows และทำตามบทช่วยสอน จนถึงตอนนี้โปรแกรมทั้งหมดใช้งานได้สำหรับฉันยกเว้นโปรแกรมในบทที่ 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            มันทำให้ฉันมีข้อผิดพลาดต่อไปนี้:
            Traceback (โทรล่าสุดล่าสุด):
            ไฟล์ "C: \ Users \ User \ Desktop \ test.py" บรรทัดที่ 24 นิ้ว
            ชนะ = IconViewWindow ()
            ไฟล์ "C: \ Users \ User \ Desktop \ test.py" บรรทัดที่ 19 ใน __init__
            pixbuf = Gtk.IconTheme.get_default () load_icon (ไอคอน 64, 0)
            ไฟล์ "C: \ Python27 \ lib \ site-Packages \ gi \ types.py" บรรทัดที่ 47 ในฟังก์ชัน
            กลับ info.invoke (* args, ** kwargs)
            GError: ไอคอน "gtk-cut" ไม่มีอยู่ในธีม

            ฉันลองใช้กับไอคอนอื่นแล้วก็ใช้ไม่ได้เช่นกัน ฉันต้องติดตั้งธีมหรือไม่? ขอบคุณตั้งแต่ตอนนี้

          3.    มาร์เซโล dijo

            ตัวอย่างที่ 19 ไม่ลากแล้วปล่อย

            ฟังก์ชั่นที่เรียกใช้ในทั้งสองกรณีและนั่นคือที่ที่ฉันได้รับข้อผิดพลาดคือ:

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

            ฉันไม่พบไอคอนนี้ แต่ในตัวอย่างอื่น ๆ คุณสามารถใช้ได้ มันทำให้ฉันมีข้อผิดพลาดเมื่อฉันต้องการใช้กับฟังก์ชันนั้นเท่านั้น (ที่นี่ icon_name สามารถแทนที่ด้วยค่าเช่น Gtk.STOCK_CUT หรืออะไรก็ได้และให้ข้อผิดพลาดเดียวกันทุกประการ)

          4.    มาร์เซโล dijo

            ฉันพูดกับตัวเองไปเรื่อย ๆ สิ่งที่ใช้ได้ผลสำหรับฉันในตัวอย่างอื่น ๆ คือรูปภาพโหลดบนปุ่ม ฉันไม่สามารถโหลดไอคอนด้วยฟังก์ชันที่มาในสองตัวอย่างที่ฉันให้ไว้ก่อนหน้านี้

          5.    อาร์ทัส dijo

            ฉันคิดว่าข้อผิดพลาดนั้นชัดเจน:
            GError: ไอคอน "gtk-cut" ไม่มีอยู่ในธีม

            เห็นได้ชัดว่าไม่มีไอคอนให้ใช้ไอคอนอื่น อาจเป็นไปได้ว่าผู้ดูแลแพ็กเกจไม่มีไอคอนธีมหรือไม่พบในเส้นทางเริ่มต้นให้ใช้การแจกจ่าย GNU / Linux และดูว่ายังมีข้อผิดพลาดเดียวกันหรือไม่

            สำหรับคำถามที่ 19 ดูเหมือนว่าจะเกี่ยวข้องกับเวอร์ชัน PyGobject ที่ด้านบนของเอกสารระบุว่า:

            หมายเหตุ
            เวอร์ชันของ PyGObject = 3.0.3 จำเป็นสำหรับตัวอย่างต่อไปนี้ในการทำงาน

            เวอร์ชันที่คุณมีคือ 3.0 ลองใช้การกระจาย GNU / Linux จากนั้นเราต้องรอให้พวกเขาอัปเดตแพ็คเกจ (สำหรับ Windows) หรือในกรณีใด ๆ คุณสามารถรวบรวมด้วยตัวเอง

            ทักทายและก้าวต่อไป

          6.    มาร์เซโล dijo

            ใน Ubuntu ตัวอย่างการสอนทั้งหมดทำงานได้ดีสำหรับฉัน ใน Windows ก็ยังใช้งานไม่ได้ ฉันจะต้องรอ อีกอย่างที่ไม่เดินคือตัวอย่าง Spinner ซึ่งไม่ทำอนิเมชั่น ทักทายและขอบคุณ

  4.   โยชัว dijo

    ฉันได้ทำตามบทช่วยสอนการติดตั้งและติดตั้งทุกอย่างทีละขั้นตอน
    และเรียกใช้รหัสต่อไปนี้:
    จาก gi.repository import Gtk

    คลาส FiestraPrincipal:
    def __init __ (ตัวเอง):
    filename = "/ data / dam / Python ตัวอย่าง / Saudoform"
    ตัวสร้าง = Gtk.builder ()
    constructor.add_from_file (ชื่อไฟล์)
    # พจนานุกรมที่เราเกี่ยวข้องกับ sinais กับเหตุการณ์
    sinais = {
    « ClickedAccept »: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # เราได้รับการอ้างอิงถึงตัวอธิบาย XML เพื่อให้สามารถเข้าถึงได้
    self.label = self.widgets_widget ("ป้ายกำกับ")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (ตัวเองวิดเจ็ต):
    text = self.cadroTexto.get_text ()
    self.label.set_text (ข้อความ "wave% s"%)

    ถ้า __name__ == » __ main__ »:
    FiestraPrincipal ()
    Gtk หลัก ()

    ฉันได้รับคำตอบนี้:
    Traceback (โทรล่าสุดล่าสุด):
    ไฟล์« C: / Users / admin / Google Drive / test / SaudoForm.py »บรรทัดที่ 3 ใน
    จาก gi.repository import Gtk
    ไฟล์ "C: \ Python33 \ lib \ site-Packages \ gi \ __ init__.py" บรรทัดที่ 27 ใน
    จาก. _gi import _API, Repository
    ImportError: การโหลด DLL ล้มเหลว:% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้อง

    มีคนรู้ว่าปัญหาคืออะไรหรืออาจเป็นทางแก้ปัญหาอะไรได้บ้าง
    ขอบคุณมาก

  5.   พระเยซู dijo

    น่าสนใจ. ฉันได้ทำการติดตั้งใน linux แล้ว แต่คำอธิบายสำหรับ windows นั้นใช้ได้ตอนนี้ฉันมีทั้งสองอย่าง 😉

  6.   ราฟาคาร์โมนา dijo

    มันตลกบน windows 7 แบบ 32 บิตในครั้งแรก
    ใน Windows 7 64 บิตฉันไม่สามารถเรียกใช้งานได้ฉันมักจะได้รับมัน
    >>> จาก gi.repository import Gtk
    Traceback (โทรล่าสุดล่าสุด):
    ไฟล์«»บรรทัดที่ 1 ใน
    ไฟล์ "C: \ Python33 \ lib \ site-Packages \ gi \ __ init__.py" บรรทัดที่ 27 ใน
    จาก. _gi นำเข้า _API
    ImportError: การโหลด DLL ล้มเหลว: ไม่พบกระบวนการที่ระบุ

    ฉันลองแล้วเป็นไปได้ฉันสูญเสียภาพลวงตาในการติดตั้งไปแล้ว

    1.    อาร์ทัส dijo

      คุณจะเห็นว่าไลบรารี 64 บิตยังคงมีบั๊กอยู่โปรดติดตั้งเวอร์ชัน 32 บิตของทั้ง python และ GTK + เพื่อให้คุณไม่มีปัญหา

      คุณไม่ควรสูญเสียภาพลวงตา🙂

  7.   ริชาร์ด dijo

    สวัสดีฉันทำงานกับ python + gtk3 ตอนนี้ฉันมีปัญหาเล็กน้อยฉันต้องการเปลี่ยนไอคอนเป็นแบบฟอร์ม (หน้าต่าง) ในกรณีนี้และฉันสามารถเปลี่ยนได้ขอบคุณล่วงหน้าทักทาย

  8.   จอร์ส dijo

    เผยแพร่วิดีโอง่ายๆเกี่ยวกับการเขียนโปรแกรมใน gtk + 3 และคำทักทายแบบฝึกหัดง่ายๆ

  9.   โฮเซ dijo

    กวดวิชาที่ยอดเยี่ยม ขอบคุณมากสำหรับความพยายามของคุณ ความนับถือ.

  10.   jkmio1030 dijo

    ฉันทำตามขั้นตอนทั้งหมดแล้วและเมื่อฉันเชื่อใจการติดตั้งฉันก็พบข้อผิดพลาดนี้

    Traceback (โทรล่าสุดล่าสุด):
    ไฟล์«»บรรทัดที่ 1 ใน
    จาก gi.repository import Gtk
    ImportError: ไม่มีโมดูลชื่อ 'gi'