הדרכה זו מתמקדת בהוראת השימוש במסגרת QT באמצעות פייתון כשפת תכנות, לשם כך אנו יכולים להשתמש גם ב- PySide וגם ב- PyQt, אך במדריך זה נשתמש ב- PySide מכיוון שמחבר המדריך הזה אוהב יותר את רישיון LGPL PySide. מאשר ה- GPL או PyQt Commercial.
ראשית ... מה זה פיתון?
על פי ויקיפדיה:
"פייתון היא שפת תכנות פרשנית ברמה גבוהה מאוד שהפילוסופיה שלה מדגישה תחביר נקי מאוד ומעדיפה קוד קריא."
פייתון היא שפת תכנות מרובת דרכים, ולכן היא תומכת בפרדיגמות תכנות שונות של פיתון, למשל היא תומכת: תכנות מונחה עצמים (OOP), תכנות חיוני (מובנה) ובמידה פחותה תכנות פונקציונלי.
רק ש?
לא, זו גם שפת הקלדה דינמית, כלומר פיתון מאפשר לנו להקצות סוגים שונים של ערכים לאותו משתנה במהלך ביצוע התוכנית, יש הרואים בכך יתרון, אחרים חסרון, ראו בעצמכם .
בנוסף למה שכבר הוזכר, Python מאפשר לנו (כמו רבים אחרים), לתכנת גם בסביבת האינטרנט וגם בשולחן העבודה באינטרנט, הוא גם חוצה פלטפורמות, נכון לעכשיו הוא תומך ב- Gnu / Linux, Windows, Mac osx, Android (אם אתה צריך להזכיר אותם לשינוי שלך).
מה זה QT?
QT היא מסגרת מרובת צורות, שפותחה במקור על ידי נוקיה, כדי למכור אותה מאוחר יותר ל- Digia, המשמשת לפיתוח אפליקציות, היא כתובה ב- C ++, אך ניתן להשתמש בשפות אחרות באמצעות Bindings (במקרה שלנו PySide או PyQt)
ההבדלים בין PySide ל- PyQt
בעיקר
- רישיון, PySide מורשה על פי תנאי ה- LGPL ו- PyQT כפוף לתנאי ה- GPL או תחת רישיון מסחרי, לכן נצטרך לשלם במקרה של יצירת יישום סגור.
- PySide נוצר על ידי נוקיה, ו- PyQt על ידי RiverBank.
- PySide חוסך לנו את הטרחה בשימוש ב- STR בכל פעם שאנחנו משתמשים ב- QString של כל אחד מאובייקטים ה- QT.
אנו יכולים לפרט על השינויים המלאים של מי.
הכנה:
אנו מתקינים את Qt:
אם יש לנו דיסטרו עם Kde, עלינו כבר לקבל את מה שאנחנו צריכים, אם לא:
sudo apt-get להתקין qt4-dev-tools
אנו מתקינים את PySide:
sudo apt-get install pyside pyside-tools
יישום הפייתון + QT הראשון שלנו
אנו הולכים לעורך הטקסטים המועדף עלינו, אני ממליץ לך להתקין sublime-text2, אך אתה יכול להשתמש בזה שאתה מעדיף, ואנחנו מקלידים את הקוד הבא ונשמור אותו עם השם שאנחנו רוצים שיסיים תמיד בסיומת ".py" , אני אשמור בתור app1.py:
אנו מריצים אותו מהקונסולה כך:
python app1.py
חלון זה אמור להופיע
מה? רק זה, כי אם הייתה לך רק קונסולה לפני כן, על מה אתה מתלונן? למה ציפית, ארפ? יאללה אדם שמשהו מתחיל.
עכשיו נסביר את הקוד:
from PySide.QtGui import *
from sys import exit, argv
כאן אנו מייבאים את המודולים הדרושים לביצוע PySide.
app = QApplication(argv)
אנו יוצרים את מופע ה- Qapplication עם אפליקציית השם.
window = Qwidget()
אנו יוצרים את המופע של QWidget ().
window.setWindowTitle("Primera App PySide")
אנו מבצעים את שיטת setWindowTitle, המקבלת מחרוזת כפרמטר כדי "להגדיר" את כותרת ה- Qwidget שלנו.
window.show()
אנו מראים את החלון שלנו
exit(app.exec_())
לבסוף אנו מבצעים את מחזור הביצוע האינסופי של ה- QApplication שלנו ().
תודה
תודה לאלה שעקבו אחריי לכאן והועילו. להדרכה הבאה אסביר כיצד לעצב את החלונות שלנו עם QT Designer ולייבא אותם לפרויקטים שלנו.
בנוסף, אני מוסיף את הקישור לפורום desde linux שבו יש לי ערכת נושא קטנה עם ספרייה קטנה של מדריכים ומדריכים של פיתון, המכילה מונחים שונים כולל:
מדריכי פייתון בסיסיים
wxPython
PyQt ו- PySide
ג'נגו
web2py
תכנות מדעי בפיתון.
ועוד רבים.
אני מקווה שהם משרתים אותך, אני נפרד, כמו תמיד תענוג להשתייך לקהילה הנפלאה הזו.
תודה על הפוסט!
2 דברים:
1. Qt לא פותחה במקור על ידי נוקיה, אלא על ידי Trolltech, שנרכשה מאוחר יותר על ידי נוקיה. האחרון מכר את Qt ל- Digia.
2. התמונה בדוגמה הראשונה ליישום אינה תואמת את הקוד.
תודה על ההדרכה, אני אעקוב אחריה 🙂
אתה צודק בהחלט שהתגעגעתי לזה. והדבר השני שאתה גם צודק, הוא ששיניתי את זה כדי להקל ולא להשתמש בכיתה והחמצתי את השינוי, שגיאות למתחילים. העברתי את התיקונים לאישור איזה עורך.
אני לא יכול לשנות, אני משאיר את זה לעורך.
ברכות.
שלח דוא"ל לעורך עם ההדרכה המתוקנת. אתה יכול לשלוח אותו לדוא"ל של @ nano שהוא אחד העורכים
mailto: nano.world.contact@gmail.com
אנא אל תעזוב את ההדרכה ככה
דרישת שלום
דבר אחד מכה אותי: מדוע אתה משתמש ב"מיבוא * "בקוד שלך?
ברכות!
זו הדרך הנכונה לייבא, כאשר מייבאים ככה אתה אומר לו איזה סוג ספציפי של המודול אתה רוצה לייבא, ואתה לא קורא לכל המודול.
ברכות.
אני מוצא את זה סוג של מבלבל. יתר על כן, זה לא מומלץ ב- PEP8:
"יש להימנע מיבוא תווים כלליים (מייבוא מודולים *), מכיוון שהם לא מבהירים אילו שמות קיימים במרחב השמות, מה שמבלבל את שני הקוראים ואת הכלים האוטומטיים רבים ..."
הדריכו אותי בעיקר קודים מקצועיים, כמו Ninja-Ide, אתה יכול לראות את הקוד כאן: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyזה נעשה גם ב- PyQt, אבל בכל דרך שהיא אין שום דבר שמאלץ אותך להשתמש בצורה זו או אחרת.
כאן תוכלו לראות דיון בנושא StackOverflow, אודות זה:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
שם הם מזכירים את היתרונות והחסרונות של כל אחד מהסגנונות.
בסדר מצטער שלא הבנתי אותך, אני יודע את זה, רק עשיתי את זה כי לא התכוונתי לתת הסבר על כל רכיב QApplication, QWidget, ואז להכליל אבל אתה צודק לחלוטין.
תסלחו לאי ההבנה.
לא, לא הבנתם או לא שמתם לב ... זאת אומרת להשתמש ב- «מיבוא מודול *», כלומר, אני מתכוון ל"כוכבית "... באותו פוסט של StackOverflow הם מדברים על משהו אחר, אבל הם עדיין מדגישים את זה:
"כל אחת מהשיטות מקובלת, אך אל תשתמש בייבוא המודולים *."
האם זה מובן עכשיו?
גרמנית צודקת. מה השימוש בייבוא מהמודול אם אתה מייבא את כל התוכן עם האסטריקה, עבור מודול הייבוא הזה. Slds פוסט נחמד באותה מידה.
אהה טוב, עכשיו אני מבין ... בכל מקרה, אל תיקח לי יותר מדי זמן, אני גם מתחיל בפייתון. אם תעבור בבלוג שלי, תראה שעשיתי פוסט דומה לשלך אבל עם Gtk + 3 באמצעות PyGObject.
ברכות ותודה!
כאן אני עוזב את ה- Pep8, בספרדית ממליץ על השימוש ב- im
זה מאוד לא מומלץ להשתמש בייבוא יחסי לייבוא קוד מחבילה. השתמש תמיד בנתיב המוחלט של החבילה לכל הייבוא. גם כעת לאחר ש- PEP 328 [7] מיושם במלואו ב- Python 2.5, השימוש ברכיב היבוא היחסי אינו מודאג ברצינות; יבוא מוחלט הוא נייד יותר ובדרך כלל קריא יותר.
בעת ייבוא כיתה ממודול, בדרך כלל נכון לעשות זאת
מייקל לייבא את MyClass
מ foo.bar.yourclass לייבא את YourClass
לגבי
קרא את זה: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
אלכס מרטלי (מפתח ליבה) ממליץ על משהו כזה:
from PyQt4 import QtCore, QtGui
רציתי עוד, למועד החלק השני!?
ברכות 🙂
מדריכים טובים מאוד, ובנוסף זה עשוי להיות יותר נוח לתכנות.
הנה דוגמה לממשק מאפס (ללא שימוש ב- QtDesigner).
https://github.com/xr09/metrocontador
אפליקציית dhunter מצוינת, כאן אנחנו אפילו לא יודעים כמה הם גובים מאיתנו חשמל, ברכות האה.
תודה לך, זו אחת מאותן אפליקציות שאחת מייצרת לשימוש אישי ומשרתת אחרים. כאן בקובה הקבלה מפורקת לפי התעריף, קל להעתיק את האלגוריתם.
אני אהיה מודע מאוד לקורס זה. אני מתעניין ביישומים חוצי פלטפורמות במשך זמן רב ואני חושב ששילוב Python + QT / Pyside הוא אופציה נהדרת. ברכות וברכות ליוזמה
עקבתי אחר כל השלבים בדיוק כמו שאתה אומר, אבל כאשר אני מריץ את יישום app1.py במסוף זה אומר לי Traceback (השיחה האחרונה האחרונה):
הקובץ "app1.py", שורה 1, ב
מייבוא PySide.QtGui *
ImportError: אין מודול בשם PySide.QtGui. בשביל מה זה ?.
הסיבה לכך היא שאתה משתמש בגרסת פיתון כמתורגמן המוגדר כברירת מחדל, אך אין לך את ה- pyside המותקן עבור גרסה זו.
נסה להוסיף בתחילת הקובץ:
#! usr / bin / python3
אחרת
#! usr / bin / python2
אני ממליץ לך להשתמש ב- Eclipse עם pydev ולהגדיר היטב את המתורגמן.
מתחם ברמה שני
#! / usr / bin / python3
אחרת
#! / usr / bin / python2
PySide עדיין לא תואם ל- Python3, היזהר בזה, ושנית, הוא בודק את הייבוא דרך קונסולת הפיתון האינטראקטיבית, כך שאתה יודע שהתקנת אותו או לא, הוא גם מתקין pip.
כיצד אוכל לאמת זאת?
בקונסולה השתמשו ב"פייתון ", בכל מקרה אני ממליץ לכם להיכנס לספרייה שהשארתי למטה בפוסט ולהוריד את" פייתון לכולם ", אתם צריכים יותר בסיס.
ברכות ומזל.
תודה רבה, זה עזר לי מאוד.
תראה חבר F3niX מצאתי את זה, נראה שעבור פיתון 3.3.2 בחלונות (וזה מה שיש לי עד השבוע הבא) יש להם בינאריות ל 32 ביט ו 64 ביט, ניסיתי את הדוגמה שלך וזה עובד עם פיתון 3.3.2 ו אני משתמש ב- PyScripter שמתקין סביבות שונות, אם אתה פותח את הפיתון 3 הוא מריץ את הסקריפטים כפייתון 3 ואם אתה פותח את ה -2.7 הוא מבצע אותם כ -2.7 וכן הלאה (באופן הגיוני אתה צריך להתקין את הגרסה הזו של פיתון ... זה מובן)
http://qt-project.org/wiki/PySide_Binaries_Windows
אני אשאיר אותך שם, רכילות, אולי זה ישרת מישהו אחר 😀
אני מקבל את אותה שגיאה.
האם התקנת PySide?
יש לי את זה מותקן.
ונסה עם PyQT4 להתקין אותו ואז לשנות את שורות PySide עבור PyQT4 או PyQt4, ולתת לו לרוץ. ג'וג'ו. השתמש בליקוי החמה. מַזָל.
איך אני עושה את זה?.
תודה רבה לך !!! מחכה לפרק השני
ליום שישי הזה אני רשאי לפרסם את ברכותיו (באוניברסיטה יש לי מלא מלא).
חבר F3nIX אני מחכה להדרכה שלך מס '2, 3, 4 ... N hehehe
כבר התקנתי את הלינוקס האלגנטית שלי עם המתנה של PySide והכל!
בואו נראה מתי מעודדים אותו להראות מורה חדש 😀
סלח לי חבר, יש לי את זה בטיוטות אבל עבודה ולימודים לא נתנו לי זמן, אני מבטיח להוציא משהו החוצה השבוע.
ברכה גדולה
שלום רב, אני מעוניין ללמוד פיתון כבר הרבה זמן אבל יש לי כמה ספקות. מה שאני רוצה זה להגיש בקשה כדי לשפר מעט את תהליך המידע של העסק המשפחתי בו אני עובד, הייתי רוצה לעשות משהו עבור חלונות, עם חלונות בהתחלה, זה יעבוד על כל מחשב יחיד ואז שהוא יכול להיות מחובר דרך האינטרנט למסד הנתונים אליו יחברו כמה מחשבים. יש הרבה גיוון מבחינת GUI של היישום וזה גורם לי לסחרחורת. מה אתה ממליץ להעניק לו מראה מודרני ומושך? הייתי מכין גם כמה גרפים סטטיסטיים ומדפיס דוחות, במה אוכל להשתמש לשם כך? לחיים
שלום, טוב מאוד, ההודעה שלך, יש לי שאלה, האם אוכל למכור את האפליקציה שלי עם פיסייד בלי שום בעיה?
ובכן, רישיונות הם תמיד מטורפים, אך רישיונות תוכנה חינמיים מאפשרים לכם גם למכור תוכנה, מה שקורה הוא שה- GPL מכריח אתכם להפיץ את הקוד, בניגוד ל- LGPL, שלא מכריח אתכם לעשות זאת.
בכל מקרה, אני לא מומחה לרישוי.
ברכות.