كيف يمكنني إنشاء تطبيق واجهة المستخدم الرسومية (GUI) عبر الأنظمة الأساسية وقابل للتنفيذ مباشرةً باستخدام Python؟

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

سؤال

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

المشكلة هي أنه ليس لدي أي فكرة من أين أبدأ أو كيفية كتابة واجهة المستخدم الرسومية بها، هل يمكن لأي شخص أن يلقي بعض الضوء على هذا ويوجهني في الاتجاه الصحيح من فضلك؟

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

المحلول

ستحتاج أولاً إلى بعض مكتبة واجهة المستخدم الرسومية مع روابط Python ثم (إذا كنت تريد) بعض البرامج التي ستحول نصوص Python الخاصة بك إلى ملفات تنفيذية مستقلة.

مكتبات واجهة المستخدم الرسومية عبر الأنظمة الأساسية مع روابط Python (Windows وLinux وMac)

بالطبع، هناك الكثير، ولكن الأكثر شعبية التي رأيتها في البرية هي:

  • تكنتر - مرتكز على مجموعة أدوات Tk GUI (مكتبة واجهة المستخدم الرسومية القياسية بحكم الواقع لبيثون، مجانًا للمشاريع التجارية)
  • WxPython - مرتكز على WxWidgets (شعبية، مجانية للمشاريع التجارية)
  • كيو تي باستخدام روابط PyQt أو كيو تي لبيثون.الأول ليس مجانيًا للمشاريع التجارية.هذا الأخير أقل نضجا، ولكن يمكن استخدامه مجانا.

القائمة الكاملة موجودة في http://wiki.python.org/moin/GuiProgramming

واحد قابل للتنفيذ (جميع المنصات)

  • PyInstaller - الأكثر نشاطا
  • fbs - إذا اخترت كيو تي أعلاه

واحد قابل للتنفيذ (ويندوز)

  • py2exe - اعتاد أن يكون الأكثر شعبية

واحد قابل للتنفيذ (لينكس)

  • تجميد - يعمل بنفس الطريقة مثل py2exe ولكنه يستهدف نظام التشغيل Linux

واحد قابل للتنفيذ (ماك)

  • py2app - مرة أخرى، يعمل مثل py2exe ولكنه يستهدف نظام التشغيل Mac OS

نصائح أخرى

نظام آخر (لم يتم ذكره في الإجابة المقبولة بعد) هو PyInstaller، والذي كان يعمل في مشروع PyQt الخاص بي عندما لم يكن py2exe يعمل.لقد وجدت أنه أسهل في الاستخدام.

http://www.pyinstaller.org/

يعتمد Pyinstaller على برنامج Python Installer الخاص بـ Gordon McMillan.والذي لم يعد متوفرا.

أداة بديلة لـ py2exe هي com.bbfreeze الذي يولد الملفات التنفيذية لنظامي التشغيل Windows و Linux.إنه أحدث من py2exe ويتعامل مع البيض بشكل جيد.لقد وجدت أنه يعمل بطريقة سحرية بشكل أفضل دون تكوين لمجموعة واسعة من التطبيقات.

هناك ايضا بيجتك, ، وهو في الأساس غلاف Python لمجموعة أدوات Gnome.لقد وجدت أنه من الأسهل الالتفاف حول ذهني أكثر من Tkinter، لأنني لم أكن أعرف إلى حد كبير برمجة واجهة المستخدم الرسومية سابقًا.إنه يعمل بشكل جيد ويحتوي على بعض البرامج التعليمية الجيدة.لسوء الحظ، لا يوجد برنامج تثبيت لـ Python 2.6 لنظام التشغيل Windows حتى الآن، وقد لا يكون موجودًا لفترة من الوقت.

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

بعد قولي هذا، من الممكن إنشاء ملفات تنفيذية تتضمن مترجم بايثون وأي مكتبات تستخدمها.من المحتمل أن يؤدي هذا إلى إنشاء ملف تنفيذي كبير.

يتضمن نظام MacOS X دعمًا في Xcode IDE لإنشاء تطبيقات واجهة المستخدم الرسومية المستقلة الكاملة.يمكن تشغيلها بواسطة أي مستخدم يقوم بتشغيل OS X.

بالنسبة لواجهة المستخدم الرسومية نفسها:

باي كيو تي هو المرجع إلى حد كبير.

هناك طريقة أخرى لتطوير واجهة مستخدم سريعة وهي كتابة تطبيق ويب ، وجعله يعمل محليًا وعرض التطبيق في المتصفح.

بالإضافة إلى ذلك ، إذا ذهبت إلى خيار Tkinter الذي اقترحه Lubos Hasko ، فقد ترغب في تجربة PortablePy لتشغيل التطبيق الخاص بك على بيئة Windows بدون Python.

لست متأكدًا من أن هذه هي أفضل طريقة للقيام بذلك، ولكن عندما أقوم بنشر تطبيقات Ruby GUI (ليست Python، ولكنها تواجه نفس "المشكلة" فيما يتعلق بـ exe.) على نظام التشغيل Windows، فأنا أكتب فقط مشغل قصير في C# يستدعي البرنامج النصي الرئيسي الخاص بي.يتم تجميعه إلى ملف قابل للتنفيذ، وبعد ذلك يكون لدي تطبيق قابل للتنفيذ.

# I'd use tkinter for python 3

import tkinter

tk = tkinter.Tk()
tk.geometry("400x300+500+300")
l = Label(tk,text="")
l.pack()
e = Entry(tk)
e.pack()

def click():
    e['text'] = 'You clicked the button'

b = Button(tk,text="Click me",command=click)
b.pack()

tk.mainloop()

# After this I would you py2exe
# search for the use of this module on stakoverflow
# otherwise I could edit this to let you know how to do it

py2exe

ثم يجب عليك استخدام py2exe، على سبيل المثال، لإحضار جميع الملفات اللازمة لتشغيل التطبيق في مجلد واحد، حتى لو لم يكن المستخدم لديه لغة python على جهاز الكمبيوتر الخاص به (أنا أتحدث عن windows...بالنسبة لنظام التشغيل Apple، ليست هناك حاجة إلى ملف قابل للتنفيذ، على ما أعتقد، لأنه يأتي مع لغة python دون الحاجة إلى تثبيته.

قم بإنشاء هذا الملف

1) قم بإنشاء setup.py

بهذا الكود:

from distutils.core import setup
import py2exe

setup(console=['l4h.py'])

احفظه في مجلد

2) ضع برنامجك في نفس المجلد من الإعداد. وضع في هذا المجلد البرنامج الذي تريد أن تجعله موزعًا:وفاق:l4h.py

ملاحظة:قم بتغيير اسم الملف (من l4h إلى أي شيء تريده، هذا مثال)

3) قم بتشغيل cmd من هذا المجلد (في المجلد، انقر بزر الماوس الأيمن + Shift واختر start cmd هنا)
4) اكتب cmd:>python setup.py py2exe
5) يوجد في مجلد dist جميع الملفات التي تحتاجها
6) يمكنك ضغطه وتوزيعه

بيينستالر

تثبيته من كمد

**

نقطة تثبيت pyinstaller

**

قم بتشغيله من cmd من المجلد الذي يوجد به الملف

**

pyinstaller file.py

**

يغلف PySimpleGUI tkinter ويعمل على Python 3 و2.7.يعمل أيضًا على Qt وWxPython وفي متصفح الويب، باستخدام نفس كود المصدر لجميع الأنظمة الأساسية.

يمكنك إنشاء واجهات المستخدم الرسومية المخصصة التي تستخدم جميع الأدوات المصغّرة نفسها التي تجدها في tkinter (شريط التمرير، ومربعات الاختيار، وأزرار الاختيار، ...).يميل الكود إلى أن يكون مضغوطًا جدًا وسهل القراءة.

#!/usr/bin/env python
import sys
if sys.version_info[0] >= 3:
    import PySimpleGUI as sg
else:
    import PySimpleGUI27 as sg

layout = [[ sg.Text('My Window') ],
          [ sg.Button('OK')]]

window = sg.Window('My window').Layout(layout)
button, value = window.Read()

Image created from posted PySimpleGUI code

كما هو موضح في وثائق PySimpleGUI, ، ل إنشاء ملف .EXE أنت تركض:

pyinstaller -wF MyGUIProgram.py

لا تحتاج إلى ذلك ترجمة بايثون لنظام التشغيل Mac/Windows/Linux.إنها لغة مترجمة، لذا تحتاج ببساطة إلى تثبيت مترجم Python على النظام الذي تختاره (وهو متاح لجميع الأنظمة الأساسية الثلاثة).

أما بالنسبة لمكتبة واجهة المستخدم الرسومية التي تعمل عبر الأنظمة الأساسية، فهي Python المعارف التقليدية/تي سي ال تعمل مكتبة الأدوات بشكل جيد جدًا، وأعتقد أنها كافية عبر الأنظمة الأساسية.

تكنتر هي واجهة بايثون لـ Tk/Tcl

من صفحة ويب مشروع بايثون:

Tkinter ليس مجموعة أدوات Guiprogramming الوحيدة لـ Python.ومع ذلك ، فهو الأكثر استخدامًا ، والوحيدة الوحيدة المحمولة بين UNIX و MAC و Windows

يمكنك استخدام appJar لتطوير واجهة المستخدم الرسومية الأساسية.

from appJar import gui

num=1

def myfcn(btnName):   
    global num
    num +=1
    win.setLabel("mylabel", num)

win = gui('Test')

win.addButtons(["Set"],  [myfcn])
win.addLabel("mylabel", "Press the Button")

win.go()

GUI when running

انظر الوثائق في موقع appJar.

يتم التثبيت باستخدام pip install appjar من سطر الأوامر.

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