ما هي واجهات برمجة تطبيقات Python GUI المتوفرة؟[مغلق]

StackOverflow https://stackoverflow.com/questions/93930

  •  01-07-2019
  •  | 
  •  

سؤال

سؤال بسيط:

  • ما هي واجهات برمجة تطبيقات Python GUI الموجودة وما هي مزايا أي واجهة برمجة تطبيقات معينة؟

أنا لا أبحث عن حرب دينية هنا، بل أريد فقط أن أتعامل بشكل جيد مع كل ما هو موجود فيما يتعلق بواجهات برمجة تطبيقات Python GUI.

هل كانت مفيدة؟

نصائح أخرى

لقد استخدمت Tkinter وwxPython.Tkinter أساسي تمامًا، ولا يستخدم عناصر واجهة مستخدم أصلية.وهذا يعني أن تطبيقات Tkinter ستبدو بنفس الشكل على أي منصة - قد يبدو هذا جذابًا، ولكن في الواقع، يعني أنها تبدو قبيحة على أي منصة :-/ ومع ذلك، فهي سهلة الاستخدام جدًا.وجدت التفكير في تكنتر لقد كان مفيدًا جدًا عندما كنت أتعلم، لأنني لم أقم بأي برمجة لواجهة المستخدم الرسومية من قبل.إذا كانت أشياء مثل الإطارات وخوارزميات التخطيط والأزرار والروابط مألوفة لك، فيمكنك تخطي هذه الخطوة.

يمكنك زيادة Tkinter باستخدام Tix (لكن كن حذرًا، Tix لا يعمل بشكل جيد مع py2exe).تحقق أيضًا من Python Megawidgets، الذي يبني بعض عناصر التحكم الأكثر تقدمًا باستخدام أساسيات Tkinter.

أخيرًا، يلعب Tkinter بشكل جيد مع الصدفة:يمكنك بدء المترجم والقيام بأشياء مثل 'import tkinter' 'tk = tkinter.Tk()' وما إلى ذلك.وقم ببناء واجهة المستخدم الرسومية الخاصة بك بشكل تفاعلي (وسوف تكون سريعة الاستجابة).(أعتقد أن هذا لا يعمل إذا كنت تستخدم IDLE، بالرغم من ذلك)

يبدو wxPython أفضل بكثير، ويأتي مزودًا بمجموعة أكبر بكثير من عناصر التحكم.إنه متعدد المنصات (على الرغم من أنه يبدو صعبًا بعض الشيء على جهاز Mac الخاص بي) ويستخدم عناصر تحكم أصلية على كل نظام أساسي.إنه مربك بعض الشيء، رغم ذلك.يأتي أيضًا مزودًا بتطبيق تجريبي يعرض معظم ميزاته، ويوفر لك منصة اختبار لتجربتها.بعض الأفكار المحددة حول wxPython:

  • هناك ثلاث (؟) طرق مختلفة لوضع الأدوات.تجاهل اثنين منهم؛مجرد استخدام الحجم.وحتى ذلك الحين، يمكنك القيام بأي تخطيط باستخدام BoxSizer وGridBagSizer فقط.
  • جميع عناصر واجهة المستخدم wx لها معرفات.لا تحتاج إلى الاهتمام بالمعرفات، ولكن في الأيام الماضية (على ما أعتقد) كنت بحاجة إلى المعرفة، لذلك سيتم تناثر بعض التعليمات البرمجية القديمة بمهام معرفية صريحة.وستحتوي معظم التعليمات البرمجية التجريبية على -1 في كل مكان كمعلمة معرف (على الرغم من حقيقة أن جميع الطرق لها معرف كمعلمة كلمة رئيسية يتم ضبطها افتراضيًا على -1 على أي حال).
  • تأكد من حصولك على مستندات wxWidgets القياسية بالإضافة إلى wxPython Demo - فأنت بحاجة إليهما معًا.
  • إذا كنت تريد استخدام wxPython مع py2exe وتريد أن يبدو جيدًا على نظام التشغيل Windows XP، فأنت بحاجة إلى القليل من الخداع في ملف setup.py الخاص بك.يرى هنا

يعد PyQt ممتازًا إذا كان لديك خبرة أو اهتمام بـ Qt.

http://www.riverbankcomputing.co.uk/software/pyqt/intro

ستكون معظم واجهات برمجة تطبيقات python GUI عبارة عن غلافات حول واجهات برمجة تطبيقات واجهة المستخدم الرسومية c/c++ الأكثر شيوعًا.لديك غلاف python لـ gtk، غلاف python لـ qt، غلاف python لـ .NET، وما إلى ذلك.

لذلك يعتمد الأمر حقًا على احتياجاتك.إذا كنت تبحث عن أسهل طريقة لرسم عناصر واجهة مستخدم ذات مظهر أصلي على Linux وMac وWindows، فانتقل إلى wxPython (مجمّع python لـ WX Widgets).إذا لم تكن تعدد الأنظمة الأساسية أحد احتياجاتك، فقد تكون المكتبات الأخرى أكثر فائدة.

بدلاً من نشر قائمة بخياراتك سأقدم رأيي المتواضع:

أنا أحب wxPython.

لقد استخدمت Qt في C++ وTk في أيام Tcl ولكن ما يجعلني أحب wxPython حقًا هو العرض التوضيحي الذي تحصل عليه معه.في العرض التوضيحي، يمكنك تصفح جميع إطارات عناصر واجهة المستخدم المختلفة وما إلى ذلك والتي تعد جزءًا من إطار العمل، ورؤية الكود المصدري ورؤية كيف يبدو أثناء تشغيله.

لقد واجهت بعض المشاكل في إنشاء إصدار Linux وتثبيته، ولكن الآن بعد أن أصبح متوفرًا، أستخدمه طوال الوقت.لقد استخدمت wxPython لتطبيقات تحليل البيانات الصغيرة وكتبت العديد من الأدوات الداخلية المتعلقة بمقارنة نتائج الاختبار ودمج كود المصدر وما إلى ذلك.

لقد وجدت هذا الرابط منذ فترة طويلة: http://www.awaretek.com/toolkits.html.يقترح أخذ الأمر بناءً على معاييرك.بالنسبة لي يقترح wxPython طوال الوقت.على أي حال، فهو يمنحك مجموعة من النتائج في مجموعات الأدوات المختلفة.ما هو مناسب لي قد لا يكون مناسبًا لك.ولكنه يمنحك كيفية تسجيل جميع النقاط وفقًا لمعاييرك، لذلك إذا لم تعجبك مجموعة الأدوات العليا لسبب ما، فيمكنك معرفة أي منها الأقرب إلى معاييرك.

يبدو أن QT/GTK/WxWidgets (المعروفة سابقًا باسم wxWindows) هي من بين مجموعات أدوات واجهة المستخدم الرسومية الأكثر نضجًا عبر الأنظمة الأساسية.المشكلة الوحيدة هي أنه لم يتم تثبيت أي منها مع التثبيت الافتراضي لـ Python، لذا قد تضطر إلى تجميع المكتبات.إذا كنت تريد شيئًا لا يتطلب التثبيت ويتم تشغيله فقط، فانتقل إلى TKInter لأنه كما ذكرنا، يتم تثبيته افتراضيًا مع Python.

على أي حال، كانت معاييري 9 على سهولة الاستخدام، 10 على نضج التوثيق/الأدوات، 10 على القاعدة المثبتة، 5 على مولدات رموز واجهة المستخدم الرسومية، 10 على الشكل والمظهر الأصلي لكل من Windows/Linux و1 و 5 للاثنين الأخيرين، أنا أنا لست مهتمًا بنظام التشغيل Mac OSX (حتى مع وجود الرقم 10 هنا فإنه يقترح wxpython).

بطاقة بايثون سهل الاستخدام حقًا.هذا ما أود أن أوصي به.

وهنا كتابتهم:

Pythoncard هي مجموعة بناء واجهة المستخدم الرسومية لبناء تطبيقات سطح المكتب عبر المنصات على Windows و Mac OS X و Linux ، باستخدام لغة Python.

شعار Pythoncard هو "يجب أن تكون الأشياء البسيطة بسيطة ويجب أن تكون الأشياء المعقدة ممكنة".

Pythoncard هو لك إذا كنت ترغب في تطوير تطبيقات رسومية بسرعة وسهولة مع الحد الأدنى من الجهد والترميز.Apple's Hypercard هي واحدة من إلهامنا.بسيطة ، لكنها قوية.

يستخدم PythonCard wxPython.إذا كنت معتادًا بالفعل على Wxpython ، فما عليك سوى التفكير في Pythoncard كوسيلة أبسط لقيام برامج Wxpython مع مجموعة كبيرة من العينات والأدوات الموجودة بالفعل لك لنسخ الفئات والأدوات الفرعية لمساعدتك على بناء تطبيقات متعددة المنصات.

يختلف EasyGUI عن واجهات المستخدم الرسومية الأخرى في أن EasyGUI لا يعتمد على الأحداث.فهو يسمح لك بالبرمجة بطريقة خطية تقليدية، ووضع مربعات حوار للإدخال والإخراج البسيط عندما تحتاج إلى ذلك.إذا لم تكن قد تعلمت بعد النموذج المبني على الأحداث لبرمجة واجهة المستخدم الرسومية، فسيسمح لك EasyGUI بأن تكون منتجًا في المهام الأساسية للغاية على الفور.لاحقًا، إذا كنت ترغب في الانتقال إلى نموذج واجهة المستخدم الرسومية المبني على الأحداث، فيمكنك القيام بذلك باستخدام حزمة واجهة المستخدم الرسومية الأكثر قوة مثل Anygui وPythonCard وTkinter وwxPython وما إلى ذلك.

موقع EasyGui

لدى WX مشكلات في نظام التشغيل Mac.

لقد ألقيت نظرة هنا، لأنني أرغب في الحصول على واجهة برمجة تطبيقات GUI مدفوعة بالحدث للقيام ببعض الأشياء في Python.لقد قمت بتثبيت wx على جهاز Mac الخاص بي كجزء من MatPlotLib، لكنه لا يعمل بشكل صحيح.لن يتم تثبيته من لوحة المفاتيح.لقد قمت بتثبيت هذا ثلاث مرات على ثلاثة أنظمة تشغيل Mac مختلفة، وعلى الرغم من أنه نجح في المرة الأولى، إلا أنني واجهت هذه المشكلة في المرتين الأخريين.

هذا الإصدار الذي أستخدمه مع توزيع Enought، لذلك لم يكن التثبيت ضروريًا.عندما قمت بتثبيته بشكل منفصل، كان هناك الكثير من عمليات التثبيت التابعة، وكان ذلك بمثابة تجربة للتثبيت.

مما قرأته هنا، سأجرب Tkinter، حيث يجب أن يكون هذا بسيطًا ومتعدد المنصات، لكنني اعتقدت أنني سأشارك ما ورد أعلاه معك.أنا أحب نظام التشغيل Mac لعدد من الأسباب المختلفة، ولكن تثبيت أدوات python أسهل بكثير على نظام التشغيل Windows (وربما نظام Linux الآخر).اعتقدت أنني سأعطي منظور Mac هنا.

أنا أحب wxPython أو Tk.

يأتي Tk مع توزيع Python القياسي، لذا لا تحتاج إلى تثبيت أي شيء آخر.

يبدو wxPython (wxWigets) أكثر قوة ويبدو أجمل كثيرًا.كما أنه يعمل بشكل جيد عبر الأنظمة الأساسية (على الرغم من أنه ليس بشكل مثالي لأنه يستخدم واجهات برمجة التطبيقات الرسومية الأساسية المختلفة على أنواع الأنظمة المختلفة)

أنا أفضل PyGTK، لأنني رجل جنوم.إن استخدام PyGTK يبدو وكأنه لغة بايثونية للغاية بالنسبة لي.يبدو تنظيم التعليمات البرمجية متسقًا، والوثائق نظيفة وشاملة، وهي مجموعة أدوات سهلة للغاية للتعود عليها (باستثناء ربما Treeviews).

لا يوجد وسيلة سهلة لاستخدام منشئ واجهة المستخدم الرسومية لـ Python.إنه أمر مدهش حقًا بالنظر إلى أن لغات البرمجة النصية الصغيرة مثل AutoIt وAutoHotkey تتمتع بأدوات إنشاء واجهة المستخدم الرسومية (GUI) رائعة وسهلة الاستخدام للغاية.هيا يا متابعي بايثون، ألا يمكنكم أن تفعلوا ما هو أفضل؟

لقد كنت أعمل مع wxPython لبضع سنوات حتى الآن وأنا أحب ذلك قليلاً.أفضل ما في wxPython هو أن واجهة المستخدم تبدو أصلية على الأنظمة الأساسية المختلفة التي تعمل عليها (ممتازة على نظامي التشغيل Windows وLinux ولكنها ليست جيدة على نظام التشغيل OS/X).

تفتقر واجهة برمجة التطبيقات (API) إلى بعض الاتساق، لكنك تعتاد عليها بسرعة.

يمكنك التحقق من تيستوف (قابس وقح، لأنه منتج خاص بي) للتعرف على ما يمكن فعله باستخدام wxPython (على الرغم من أنني يجب أن أقول، مع قدر كبير من الجهد).

يمكن لـ wxPython، وأفترض أن PyGTK أيضًا، استخدام wxGlade لمساعدتك في تصميم معظم واجهات المستخدم التي ستنشئها.هذه إضافة كبيرة.ليس عليك أن تتعلم كيفية ترميز واجهة المستخدم الرسومية يدويًا حتى تصبح جاهزًا.لقد قمت بإنشاء العديد من برامج واجهة المستخدم الرسومية مباشرة من wxGlade قبل أن أشعر بالارتياح الكافي لكيفية عمل wxPython لالتقاط صورة للترميز اليدوي.

يحتوي PyQt على جهاز تخطيط رسومي مشابه، لكن لم يحالفني الحظ مطلقًا في جعل PyQt يقوم بالتجميع بشكل صحيح.كان هناك أيضًا نقص في البرامج التعليمية والوثائق التي توضح كيفية إنشاء كود بايثون النهائي؛تشير العديد من المستندات التي وجدتها إلى إصدار C++ من Qt.

يعد Tkinter مفيدًا للبرامج السريعة والقذرة، ولكن من الناحية الواقعية، إذا كنت تستخدم wxGlade، فقد يكون إنشاء البرنامج باستخدام wxPython أسرع.كحد أدنى، يمكنك استخدام wxGlade لإظهار تمثيل مرئي للبرنامج للعميل بدلاً من قضاء الوقت في ترميز البرنامج "الوهمي" يدويًا.

هناك واجهة برمجة التطبيقات الخاصة ببايثون مثل kivy (الخلف أو pymt)، pygui (المعتمد على pyrex)، pyui و nufox، والتي لا يمكن مقارنتها بمجموعات الأدوات الأكثر قوة مثل wxpython، pyqt، pygtk و tkinter.

إنها مجرد أدوات اختيارية إضافية.

الشيء الوحيد الفريد فيها هو أنها واجهة برمجة تطبيقات خاصة ببايثون، تمامًا مثل وجود بريما (واجهة برمجة تطبيقات خاصة ببيرل) وأحذية (واجهة برمجة تطبيقات روبي محددة).يساعدنا ذلك على فهم أنه عندما يكون tk منفذًا لواجهة برمجة التطبيقات (api) يستند إلى tcl (والبعض الآخر يستند إلى c وc++)، فإن واجهة برمجة التطبيقات هذه يتم إنشاؤها خصيصًا للغات البرمجة النصية الثلاث المعنية.

من بين هذه، kivy هو الأقوى، في حين يُذكر أن ترميز pygui يشبه إلى حد كبير python، pyui هو الأقل قوة ولكنه يستحق المحاولة ويجب أن يكون كل هذا محمولًا أينما يذهب التطبيق المستند إلى python أو python.

ثم هناك jpype وهي مجموعة أدوات يمكن استخدامها مع jython وpydev، وهي في الواقع japi's japi المخصصة ضمن واجهة python/jython.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top