การแนะนำ
ในการพัฒนาแอปพลิเคชัน 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
โดยคลิกที่ลิงค์ (Windows Installer) โปรแกรมติดตั้ง Python จะดาวน์โหลด
ดาวน์โหลด Glade
ดาวน์โหลดเว็บไซต์: Glade.gnome.org
ทั้ง Python และ Glade เวอร์ชัน 32 บิต แต่ทำงานได้โดยไม่มีปัญหาในระบบ 64 บิต
ดาวน์โหลด PyGObject
ดาวน์โหลดเว็บไซต์: https://wiki.gnome.org/PyGObject
เราต้องดาวน์โหลดเวอร์ชันสำหรับ GTK + 3
การติดตั้งแพ็คเกจ
จนถึงจุดนี้เรามีแพ็คเกจที่ดาวน์โหลดทั้งหมดในโฟลเดอร์แล้ว ซอฟต์แวร์ และเมื่อเราดาวน์โหลดแต่ละแพ็คเกจเราจะเริ่มต้นด้วยการติดตั้ง Python ก่อน
การติดตั้ง Python
การติดตั้งนั้นง่ายมากตัวช่วยสร้างจะแนะนำเราตลอดกระบวนการ เราปล่อยให้ตัวเลือกทั้งหมดถูกทำเครื่องหมายโดยค่าเริ่มต้น
ดังที่เห็นในภาพ Python จะติดตั้งในโฟลเดอร์ C: \ Python33 \ ตามค่าเริ่มต้นเราปล่อยให้มันเป็นไปตามที่เป็นอยู่และดำเนินการติดตั้งต่อไป
ณ จุดนี้ของการติดตั้งเราเลือกตัวเลือก เพิ่ม python.exe ใน Pathโดยมีจุดประสงค์ว่าเมื่อเราเปิดตัวล่าม Python มันจะถูกเรียกใช้งานโดยไม่จำเป็นต้องเพิ่มเข้าไปในเส้นทางระบบด้วยตนเอง
เสร็จสิ้นการติดตั้งและ Python จะถูกติดตั้งในระบบของเรา
การติดตั้ง Glade
การติดตั้ง Glade ไม่ได้แสดงถึงความซับซ้อนที่สำคัญเราเรียกใช้โปรแกรมการติดตั้งและทำตามขั้นตอนของวิซาร์ด
การติดตั้ง PyGObject
เราได้ดาวน์โหลดแพคเกจ pygi-aio-3.4.2rev11.7zแพคเกจนี้รวม PyGObject สำหรับ Python 3.3 และ GTK + 3 ไลบรารีสำหรับ Windows ซึ่งบีบอัดด้วยไฟล์ 7-Zipเราเปิดเครื่องรูดและเราจะมีโฟลเดอร์ที่มีเนื้อหาต่อไปนี้:
ตอนนี้เราคัดลอกโฟลเดอร์ gtk a C: \ Python33 \ Lib \ ไซต์แพ็คเกจ ซึ่งเป็นที่ติดตั้งแพ็คเกจของบุคคลที่สามสำหรับ Python
เรากลับไปที่โฟลเดอร์ของเรา pygi-aio-3.4.2rev11 และเราเปิดโฟลเดอร์ py33 สำหรับเวอร์ชัน Python ที่ 3.3
เราเลือก เนื้อหาทั้งหมด โฟลเดอร์ py33 และเราคัดลอกกลับเข้าไปในโฟลเดอร์ C: \ Python33 \ Lib \ ไซต์แพ็คเกจเราจะถูกขอให้ผสมและเขียนทับเราตอบยืนยัน เนื้อหาของโฟลเดอร์ ไซต์แพ็คเกจ จะเป็นดังที่แสดงในภาพต่อไปนี้:
ตรวจสอบการติดตั้ง PyGobject และ GTK + 3 ที่ถูกต้อง
เพื่อตรวจสอบว่าการติดตั้งของเราถูกต้องเราเปิด Python IDLE และนำเข้าไลบรารี GTK + 3 และหากเราไม่มีข้อความแสดงข้อผิดพลาดทุกอย่างจะดำเนินการอย่างถูกต้อง
from gi.repository import Gtk
แล้วทำไมต้อง GTK? การพัฒนาใน QT จะไม่ดีกว่าหรือ? นอกจากนี้ยังมีหลายแพลตฟอร์มและหลายคนบอกว่ามันคืออนาคต
ไลบรารีกราฟิกที่ยอดเยี่ยมสองไลบรารีบนเดสก์ท็อป GNU / Linux คือ GTK และ QT แต่ละอันเลือกไลบรารีที่ต้องการ ไม่มีเหตุผลที่จะทะเลาะกัน
ความแตกต่างระหว่าง GTK และ QT คือกรอบหลังเป็นเฟรมเวิร์กซึ่งดีมาก แต่การเป็นเฟรมเวิร์กนั้นจะใช้ทรัพยากรมากกว่าเล็กน้อย
ตัวอย่างเช่น Mozilla Firefox, Google Chrome, LibreOffice และอื่น ๆ ที่ใช้ GTK; นี่ไม่ได้หมายความว่ามันดีกว่า QT ทุกคนควรเลือกสิ่งที่เหมาะกับความชอบและความต้องการของพวกเขาเราไม่ต้องการให้เกิดการอภิปรายเกี่ยวกับเรื่องนี้
Google chrome จากเวอร์ชัน 33 ออกจาก gtk
และทำไมคำอธิบายสำหรับ windows ไม่ใช่ linux
เป็นเพราะใน Linux ทุกอย่างบรรจุอยู่แล้วและในที่เก็บอย่างเป็นทางการของแต่ละ distro หรือไม่? ตัวอย่างเช่นใน Fedora ฉันได้ติดตั้ง Python 3, Gtk + 3 และ PyGobject ตามค่าเริ่มต้นแล้ว ถ้าฉันต้องการ Glade ก็แค่ "yum install glade" ง่ายใช่มั้ย? 🙂
เพราะอย่างที่Germánกล่าวไว้สำหรับ GNU / Linux ดิสทริบิวชันนั้นได้รับการบรรจุเรียบร้อยแล้วและติดตั้งได้ง่าย ตัวอย่างเช่นการติดตั้ง glade บน Debian นั้นง่ายมาก:
ความถนัดติดตั้ง glade
หากต้องการใช้ Python 2.7 ขั้นตอนจะเหมือนกันหรือไม่?
เห็นได้ชัดว่าการติดตั้ง Python 2.7 32 บิต (แม้ว่าคุณจะใช้ระบบปฏิบัติการ 64 บิต) และแทนที่จะเป็นโฟลเดอร์ py33 2.7 ก็จะไป มันจะทำงาน?
ขอบคุณ
ใช่ถ้าคุณมีปัญหาโปรดแสดงความคิดเห็น
Suerte
ขอบคุณฉันได้ลองใช้แล้วและตอนนี้ "สวัสดีชาวโลก" ก็ใช้ได้ผลสำหรับฉัน
ฉันดูว่าฉันจะได้รับบทช่วยสอน pyGTK3 ที่ดีหรืออะไรก็ตามที่เรียกว่าและปัญหาใด ๆ คำเตือน
กวดวิชา:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
คาราบา! ขอบคุณมาก!
ทดสอบ 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" ไม่มีอยู่ในธีม
ฉันลองใช้กับไอคอนอื่นแล้วก็ใช้ไม่ได้เช่นกัน ฉันต้องติดตั้งธีมหรือไม่? ขอบคุณตั้งแต่ตอนนี้
ตัวอย่างที่ 19 ไม่ลากแล้วปล่อย
ฟังก์ชั่นที่เรียกใช้ในทั้งสองกรณีและนั่นคือที่ที่ฉันได้รับข้อผิดพลาดคือ:
pixbuf = Gtk.IconTheme.get_default (). load_icon (icon_name, 16, 0)
ฉันไม่พบไอคอนนี้ แต่ในตัวอย่างอื่น ๆ คุณสามารถใช้ได้ มันทำให้ฉันมีข้อผิดพลาดเมื่อฉันต้องการใช้กับฟังก์ชันนั้นเท่านั้น (ที่นี่ icon_name สามารถแทนที่ด้วยค่าเช่น Gtk.STOCK_CUT หรืออะไรก็ได้และให้ข้อผิดพลาดเดียวกันทุกประการ)
ฉันพูดกับตัวเองไปเรื่อย ๆ สิ่งที่ใช้ได้ผลสำหรับฉันในตัวอย่างอื่น ๆ คือรูปภาพโหลดบนปุ่ม ฉันไม่สามารถโหลดไอคอนด้วยฟังก์ชันที่มาในสองตัวอย่างที่ฉันให้ไว้ก่อนหน้านี้
ฉันคิดว่าข้อผิดพลาดนั้นชัดเจน:
GError: ไอคอน "gtk-cut" ไม่มีอยู่ในธีม
เห็นได้ชัดว่าไม่มีไอคอนให้ใช้ไอคอนอื่น อาจเป็นไปได้ว่าผู้ดูแลแพ็กเกจไม่มีไอคอนธีมหรือไม่พบในเส้นทางเริ่มต้นให้ใช้การแจกจ่าย GNU / Linux และดูว่ายังมีข้อผิดพลาดเดียวกันหรือไม่
สำหรับคำถามที่ 19 ดูเหมือนว่าจะเกี่ยวข้องกับเวอร์ชัน PyGobject ที่ด้านบนของเอกสารระบุว่า:
หมายเหตุ
เวอร์ชันของ PyGObject = 3.0.3 จำเป็นสำหรับตัวอย่างต่อไปนี้ในการทำงาน
เวอร์ชันที่คุณมีคือ 3.0 ลองใช้การกระจาย GNU / Linux จากนั้นเราต้องรอให้พวกเขาอัปเดตแพ็คเกจ (สำหรับ Windows) หรือในกรณีใด ๆ คุณสามารถรวบรวมด้วยตัวเอง
ทักทายและก้าวต่อไป
ใน Ubuntu ตัวอย่างการสอนทั้งหมดทำงานได้ดีสำหรับฉัน ใน Windows ก็ยังใช้งานไม่ได้ ฉันจะต้องรอ อีกอย่างที่ไม่เดินคือตัวอย่าง Spinner ซึ่งไม่ทำอนิเมชั่น ทักทายและขอบคุณ
ฉันได้ทำตามบทช่วยสอนการติดตั้งและติดตั้งทุกอย่างทีละขั้นตอน
และเรียกใช้รหัสต่อไปนี้:
จาก 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 ที่ถูกต้อง
มีคนรู้ว่าปัญหาคืออะไรหรืออาจเป็นทางแก้ปัญหาอะไรได้บ้าง
ขอบคุณมาก
น่าสนใจ. ฉันได้ทำการติดตั้งใน linux แล้ว แต่คำอธิบายสำหรับ windows นั้นใช้ได้ตอนนี้ฉันมีทั้งสองอย่าง 😉
มันตลกบน 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 ล้มเหลว: ไม่พบกระบวนการที่ระบุ
ฉันลองแล้วเป็นไปได้ฉันสูญเสียภาพลวงตาในการติดตั้งไปแล้ว
คุณจะเห็นว่าไลบรารี 64 บิตยังคงมีบั๊กอยู่โปรดติดตั้งเวอร์ชัน 32 บิตของทั้ง python และ GTK + เพื่อให้คุณไม่มีปัญหา
คุณไม่ควรสูญเสียภาพลวงตา🙂
สวัสดีฉันทำงานกับ python + gtk3 ตอนนี้ฉันมีปัญหาเล็กน้อยฉันต้องการเปลี่ยนไอคอนเป็นแบบฟอร์ม (หน้าต่าง) ในกรณีนี้และฉันสามารถเปลี่ยนได้ขอบคุณล่วงหน้าทักทาย
เผยแพร่วิดีโอง่ายๆเกี่ยวกับการเขียนโปรแกรมใน gtk + 3 และคำทักทายแบบฝึกหัดง่ายๆ
กวดวิชาที่ยอดเยี่ยม ขอบคุณมากสำหรับความพยายามของคุณ ความนับถือ.
ฉันทำตามขั้นตอนทั้งหมดแล้วและเมื่อฉันเชื่อใจการติดตั้งฉันก็พบข้อผิดพลาดนี้
Traceback (โทรล่าสุดล่าสุด):
ไฟล์«»บรรทัดที่ 1 ใน
จาก gi.repository import Gtk
ImportError: ไม่มีโมดูลชื่อ 'gi'