פיתוח אפליקציות עם 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.org

הורד את מתקין Python

הורד את מתקין Python

בלחיצה על הקישור (Windows Installer) מתקין הפייתון יוריד.

הורד את Glade

אתר הורדה: glade.gnome.org

גרסאות Python ו- Glade הן 32 סיביות, אך פועלות ללא בעיות במערכות 64 סיביות

עמוד גלייד

עמוד גלייד

הורד את PyGObject

אתר הורדה: https://wiki.gnome.org/PyGObject

עלינו להוריד את הגרסה ל- GTK + 3

PyGObject

PyGObject

PyGObject בקוד גוגל

PyGObject בקוד גוגל

התקנת החבילות

ובכן עד לנקודה זו כבר יש לנו את כל החבילות שהורדו בתיקיה תוֹכנָה וככל שהורדנו כל חבילה נתחיל קודם בהתקנת Python.

חבילות שהורדו

חבילות שהורדו

התקנת פייתון

ההתקנה מאוד פשוטה, האשף ידריך אותנו בתהליך; אנו משאירים את כל האפשרויות המסומנות כברירת מחדל.

תוכנית התקנת פייתון

תוכנית התקנת פייתון

כפי שנראה בתמונה, פייתון מתקין בתיקיה C: \ Python33 \ כברירת מחדל, אנו משאירים אותו כמו שהוא וממשיכים בהתקנה.

תיקיית התקנת פייתון

תיקיית התקנת פייתון

בשלב זה של ההתקנה אנו בוחרים באפשרות הוסף את python.exe לנתיב, במטרה שכאשר אנו משיקים מתורגמן של Python הוא מבוצע ללא צורך להוסיף אותו לנתיב המערכת באופן ידני.

הוסף את פייתון לנתיב המערכת

הוסף את פייתון לנתיב המערכת

לאחר מכן נסיים את ההתקנה ופייתון הותקן במערכת שלנו.

התקנת גלייד

התקנת 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 \ חבילות אתר

תיקיית Gtk ב- C: \ Python33 \ Lib \ חבילות אתר

אנחנו חוזרים לתיקייה שלנו pygi-aio-3.4.2rev11 ואנחנו פותחים את התיקיה Py33 לגרסת הפיתון שהיא 3.3

תוכן התיקיה py33

תוכן התיקיה py33

אנחנו בוחרים כל התוכן מהתיקיה Py33 ואנחנו מעתיקים אותו בחזרה לתיקיה C: \ Python33 \ Lib \ חבילות אתר, נתבקש לערבב ולכתוב, אנו עונים בחיוב. תוכן התיקיה חבילות אתר זה יהיה כפי שמוצג בתמונה הבאה:

העתק את תוכן התיקיה py33 ל- C: \ Python33 \ Lib \ חבילות אתר

העתק את תוכן התיקיה py33 ל- C: \ Python33 \ Lib \ חבילות אתר

בודקים את ההתקנה הנכונה של PyGobject ו- GTK + 3

כדי לוודא שההתקנה שלנו הייתה נכונה, אנו פותחים את ה- Python IDLE ומייבאים את ספריות GTK + 3 ואם אין לנו שום הודעת שגיאה הכל נעשה כהלכה.

from gi.repository import Gtk

PyGobject ו- GTK + 3 מותקנים כהלכה

PyGobject ו- GTK + 3 מותקנים כהלכה


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   חואקין דיג'ו

    ולמה GTK? האם לא עדיף להתפתח ב- QT? מלבד היותו מרובה צורות ורבים אומרים שזה העתיד

    1.    ארטוס דיג'ו

      ובכן, שתי הספריות הגרפיות הנהדרות בשולחן העבודה של GNU / Linux הן GTK ו- QT, כל אחת מהן בוחרת בזאת שהן מעדיפות. אין שום סיבה להילחם.

      ההבדל בין GTK ל- QT הוא שהאחרון הוא מסגרת, אכן טובה מאוד, אך בהיותה מסגרת היא צורכת מעט יותר משאבים.

      לדוגמא Mozilla Firefox, Google Chrome, LibreOffice וכדומה ארוכה מיוצרים עם GTK; זה לא אומר שהוא טוב יותר מ- QT, כל אחד צריך לבחור את זה שמתאים להעדפותיו ולצרכים שלו, איננו רוצים לגרום לדיון בנושא.

      1.    pandev92 דיג'ו

        גוגל כרום מגרסה 33, השאירו את gtk.

  2.   רולו דיג'ו

    ומדוע ההסבר לחלונות ולא לינוקס

    1.    ג'רמן דיג'ו

      האם בגלל שבלינוקס הכל כבר ארוז ובמאגרים הרשמיים של כל הפצה? ב Fedora, למשל, כבר מותקן ברשותי Python 3, Gtk + 3 ו- PyGobject כברירת מחדל. אם אני רוצה Glade, זה פשוט "yum install glade". קל נכון? 🙂

    2.    ארטוס דיג'ו

      כי כמו שאומר גרמן, עבור הפצות GNU / Linux הם כבר ארוזים וקל מאוד להתקין אותם; לדוגמה, התקנת קרח בדביאן היא פשוטה מאוד:
      כושר להתקין

  3.   מרסלו דיג'ו

    אם אני רוצה להשתמש בפייתון 2.7 האם השלבים יהיו זהים?
    ברור שהתקנת Python 2.7 של 32 סיביות (גם אם אתה משתמש במערכת ההפעלה של 64 סיביות) ובמקום תיקיית py33, ה- 2.7 יעבור. האם זה יצליח?
    תודה.

    1.    ארטוס דיג'ו

      ובכן כן, אם יש לכם בעיה, השאירו לי תגובה.

      מזל.

      1.    מרסלו דיג'ו

        תודה, כבר ניסיתי ובינתיים "שלום עולם" עובד בשבילי.

        אני רואה אם ​​אוכל לקבל הדרכה טובה של pyGTK3 או איך שזה נקרא וכל בעיה, אזהרה.

          1.    מרסלו דיג'ו

            קרמבה! תודה רבה!

          2.    מרסלו דיג'ו

            בדיקת ה- 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, ב
            win = 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 (* טענות, ** קווארגס)
            GError: אייקון 'gtk-cut' אינו קיים בנושא

            ניסיתי את זה עם אייקונים אחרים וגם זה לא עובד. האם עלי להתקין ערכת נושא? תודה מאז עכשיו.

          3.    מרסלו דיג'ו

            גם לא דוגמה 19. גרור ושחרר.

            הפונקציה שמתקשרת בשני המקרים ושם אני מקבל שגיאה היא:

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

            אני לא מוצא את הסמל, אבל בדוגמאות אחרות אתה יכול להשתמש בהם. זה נותן לי שגיאה רק כשאני רוצה להשתמש בה עם פונקציה זו (כאן ניתן להחליף את icon_name לערך כגון Gtk.STOCK_CUT או כל דבר אחר וזה נותן את אותה שגיאה בדיוק).

          4.    מרסלו דיג'ו

            אני ממשיך לדבר עם עצמי. מה שעובד עבורי בדוגמאות אחרות הוא שהתמונות נטענות על הכפתורים. אני לא יכול לטעון את הסמלים עם הפונקציה שמגיעה בשתי הדוגמאות שהבאתי קודם.

          5.    ארטוס דיג'ו

            אני חושב שהשגיאה ברורה:
            GError: אייקון 'gtk-cut' אינו קיים בנושא

            ככל הנראה סמל זה אינו זמין, השתמש בסמל אחר. כנראה שמנהל החבילות לא כלל את סמלי העיצוב או שהוא לא נמצא בנתיב ברירת המחדל, השתמש בהפצת GNU / Linux ובדוק אם אותה שגיאה עדיין מופיעה.

            לגבי שאלה 19 נראה שזה קשור לגרסת PyGobject, בראש התיעוד כתוב:

            הערות
            גרסאות PyGObject = 3.0.3 נדרשות כדי שהדוגמאות הבאות יפעלו.

            הגרסה שיש לך היא 3.0, נסה הפצה של GNU / Linux; ואז עלינו להמתין עדכון החבילה (עבור Windows) או בכל מקרה שתוכל לקמפל אותה בעצמך.

            ברכות והמשיכו הלאה.

          6.    מרסלו דיג'ו

            באובונטו כל דוגמאות ההדרכה עובדות מושלמות עבורי. ב- Windows זה עדיין לא עובד. אצטרך לחכות. עוד אחד שלא הולך הוא הדוגמה של הספינר, שלא עושה את האנימציה. ברכות ותודה.

  4.   יהושוע דיג'ו

    עקבתי אחר מדריך ההתקנה והתקנתי הכל צעד אחר צעד.
    וביצוע הקוד הבא:
    מ- Gtk יבוא רפוזיורי

    בכיתה Fiestra מנהל:
    def __init __ (עצמי):
    filename = "/ data / dam / Python exemplars / Saudoform"
    קונסטרוקטור = Gtk.builder ()
    constructor.add_from_file (שם קובץ)
    מילון # שבו אנו מקשרים בין סינאיי לאירועים
    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_click (עצמי, ווידג'ט):
    טקסט = self.cadroTexto.get_text ()
    self.label.set_text ("גל% s"% טקסט)

    אם __name__ == »__ main__»:
    מנהל פיסטר ()
    Gtk.Main ()

    אני מקבל את התשובה הזו:
    Traceback (השיחה האחרונה אחרונה):
    קובץ «C: / משתמשים / admin / Google Drive / test / SaudoForm.py», שורה 3, ב
    מ- Gtk יבוא רפוזיורי
    קובץ "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", שורה 27, ב
    מ ._gi ייבוא ​​_API, מאגר
    ImportError: טעינת ה- DLL נכשלה:% 1 אינו יישום Win32 חוקי.

    מישהו יודע מה הבעיה, או מה יכול להיות הפיתרון האפשרי שלה.
    תודה רבה.

  5.   ישוע דיג'ו

    מעניין. ביצעתי את ההתקנה בלינוקס, אבל ההסבר לחלונות הוא בסדר, עכשיו יש לי את שניהם. 😉

  6.   רפא כרמונה דיג'ו

    זה מצחיק בפעם הראשונה עם חלונות 7 של 32 סיביות.
    ב- Windows 7 64 סיביות, אני לא יכול לגרום לו לרוץ, אני תמיד מקבל את זה;
    >>> מאת gi.repository יבוא Gtk
    Traceback (השיחה האחרונה אחרונה):
    קובץ «», שורה 1, ב
    קובץ "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", שורה 27, ב
    מ ._gi ייבוא ​​_API
    ImportError: טעינת ה- DLL נכשלה: התהליך שצוין לא נמצא.

    ניסיתי את זה בכל מקרה אפשרי, כבר איבדתי את האשליה להתקין אותו.

    1.    ארטוס דיג'ו

      תראה שבספריות 64 סיביות עדיין יש כמה באגים, אנא התקן את גרסת ה 32 סיביות של פיתון וגם של GTK + כדי שלא תהיה לך בעיה.

      לעולם אל תאבד את האשליה 🙂

  7.   ריצ'רד דיג'ו

    היי אני עובד עם פיתון + gtk3, זה טוב מאוד עכשיו אני בבעיה קטנה אני רוצה לשנות את הסמל לטופס (חלון) במקרה הזה ואני יכול לשנות אותו, תודה מראש, ברכות

  8.   ג'ורס דיג'ו

    פרסם סרטונים פשוטים כיצד לתכנת ב- gtk + 3 וברכות הדרכות פשוטות

  9.   חוסה דיג'ו

    הדרכה מעולה. תודה רבה על המאמץ שלך. בברכה.

  10.   jkmilo1030 דיג'ו

    עשיתי את כל השלבים וכשניגשתי לסמוך על ההתקנה קיבלתי את השגיאה הזו.

    Traceback (השיחה האחרונה אחרונה):
    קובץ «», שורה 1, ב
    מ- Gtk יבוא רפוזיורי
    ImportError: אין מודול בשם 'gi'