পাইথন ব্যবহার করে আমি কীভাবে সরাসরি সম্পাদনযোগ্য ক্রস-প্ল্যাটফর্ম জিইউআই অ্যাপ্লিকেশন তৈরি করতে পারি?


263

পাইথন একাধিক প্ল্যাটফর্মে কাজ করে এবং ডেস্কটপ এবং ওয়েব অ্যাপ্লিকেশনগুলির জন্য ব্যবহার করা যেতে পারে, সুতরাং আমি উপসংহারে পৌঁছেছি যে এটি ম্যাক, উইন্ডোজ এবং লিনাক্সের জন্য নির্বাহযোগ্য হিসাবে সংকলন করার কিছু উপায় আছে।

সমস্যাটি হওয়ায় আমার কোন ধারণা নেই যে এটি কোথায় শুরু করবেন বা এটি দিয়ে জিইউআই কীভাবে লিখবেন, কেউ কি এ সম্পর্কে কিছু আলোকপাত করতে পারেন এবং দয়া করে আমাকে সঠিক দিকে নির্দেশ করতে পারেন?

উত্তর:


285

প্রথমে আপনার পাইথন বাইন্ডিং সহ কিছু জিইউআই লাইব্রেরি প্রয়োজন হবে এবং তারপরে (আপনি চাইলে) এমন কিছু প্রোগ্রাম যা আপনার পাইথন স্ক্রিপ্টগুলিকে একক এক্সিকিউটেবলে রূপান্তরিত করবে।

পাইথন বাইন্ডিং সহ ক্রস-প্ল্যাটফর্ম জিইউআই লাইব্রেরি (উইন্ডোজ, লিনাক্স, ম্যাক)

অবশ্যই, এখানে অনেকগুলি রয়েছে তবে আমি বন্যের মধ্যে সর্বাধিক জনপ্রিয় যা হ'ল:

সম্পূর্ণ তালিকাটি http://wiki.python.org/moin/GuiProgramming এ রয়েছে

একক নির্বাহযোগ্য (সমস্ত প্ল্যাটফর্ম)

  • পাইআইনস্টলার - সর্বাধিক সক্রিয় (এটিও ব্যবহার করা যেতে পারে PyQt)
  • fbs - যদি আপনি উপরে Qt পছন্দ করেন

একক এক্সিকিউটেবল (উইন্ডোজ)

  • পাইপেক্স - সর্বাধিক জনপ্রিয় হিসাবে ব্যবহৃত হত

একক এক্সিকিউটেবল (লিনাক্স)

  • ফ্রিজ - পাইপেক্সের মতো একইভাবে কাজ করে তবে লিনাক্স প্ল্যাটফর্মকে লক্ষ্য করে

একক এক্সিকিউটেবল (ম্যাক)


19
উইন্ডোজের জন্য পাইপইস্টলার সম্পর্কে কথা বলুন, পাইপেক্সের পরিবর্তে।
চেঞ্জলগ

8
এটি লক্ষণীয় যে 4.5 কিউটি হিসাবে এলজিপিএলের অধীনে থাকবে।
সিটিটি

14
... যার কারণে আপনি এখন খুব ব্যবহার বিবেচনা করা উচিত PySide যা হয় LGPL। এটি পাইকিউটি 4 এর পাইথন 2 এপিআই এর চেয়ে বেশি পাইথোনিক।
ক্রিস মরগান 0

4
আপনি সিএক্স_ফ্রিজে যোগ করতে পারেন যা ক্রস প্ল্যাটফর্ম, রক্ষণাবেক্ষণ এবং পাইথন ৩.x সমর্থন করে।
fbmd

2
কেন এখানে কিভির কোন উল্লেখ নেই? এটি কি এই প্রশ্নের বৈধ বিকল্প নয়?
সিলসুর 14

56

অন্য সিস্টেম (এখনও স্বীকৃত উত্তরে উল্লেখ করা হয়নি) হলেন পাইআইনস্টলার, যা পাইক 2 এক্সই না করলে আমার পাইকুইট প্রকল্পের জন্য কাজ করেছিল। আমি এটি ব্যবহার করা সহজ।

http://www.pyinstaller.org/

পাইনস্টিলার গর্ডন ম্যাকমিলানের পাইথন ইনস্টলারের উপর ভিত্তি করে। যা আর পাওয়া যায় না।


1
এবং এর উত্তর লেখার 3 বছরেরও বেশি বছরের পরে পাইনস্টলারের স্টিলটি পাইথন 3 সমর্থন করে না, এটি ভবিষ্যতে প্রকাশের রোডম্যাপে তালিকাভুক্তও নয়। মানে, এআইএক্স এবং সোলারিস সমর্থন কি পাইথন 3 এর চেয়ে বেশি কার্যকর?
ডেভ

11
এটি পাইথন 2.7 এবং পাইথন 3.3, 3.4 এবং 3.5 এখন সমর্থন করে।
Katu

4
এবং এখন 3.6।
রেক্সসিরাস

14

পাইপেক্সের একটি বিকল্প সরঞ্জাম বিবিফ্রিজে যা উইন্ডোজ এবং লিনাক্সের জন্য এক্সিকিউটেবল তৈরি করে। এটি পাইপেক্সের চেয়েও নতুন এবং ডিমগুলি বেশ ভালভাবে পরিচালনা করে। আমি দেখতে পেয়েছি যে এটি বিভিন্ন অ্যাপ্লিকেশনগুলির কনফিগারেশন ছাড়াই যাদুকরভাবে আরও ভালভাবে কাজ করে।


11

এর রয়েছে PyGTK , যা মূলত, Gnome টুলকিট একটি পাইথন মোড়কের হয়। আমি টিকিনটারের চেয়ে আমার মন মোড়ানো আরও সহজ পেয়েছি, আগে জিইউআই প্রোগ্রামিং সম্পর্কে খুব বেশি জ্ঞান নেই coming এটি বেশ ভাল কাজ করে এবং কিছু ভাল টিউটোরিয়াল আছে। দুর্ভাগ্যক্রমে উইন্ডোজের জন্য পাইথন ২.6 এর জন্য এখনও কোনও ইনস্টলার নেই, এবং এটি কিছু সময়ের জন্য নাও থাকতে পারে।


6

যেহেতু পাইথন এখন প্রায় প্রতিটি নন-উইন্ডোজ ওএসে ডিফল্টরূপে ইনস্টল করা হয়, তাই আপনার কেবলমাত্র নিশ্চিত হওয়া উচিত যে আপনি ব্যবহার করেন এমন সমস্ত অ-মানক লাইব্রেরি ইনস্টল করা আছে।

এটি বলার পরে, এক্সিকিউটেবলগুলি তৈরি করা সম্ভব যেগুলিতে পাইথন দোভাষী এবং যে কোনও গ্রন্থাগার আপনি ব্যবহার করেন। এটি সম্ভবত একটি বৃহত নির্বাহযোগ্য তৈরি করার সম্ভাবনা রয়েছে।

ম্যাকওএস এক্স এমনকি সম্পূর্ণ স্ট্যান্ডেলোন জিইউআই অ্যাপ্লিকেশন তৈরির জন্য এক্সকোড আইডিইতে সমর্থন অন্তর্ভুক্ত করে। এগুলি যে কোনও ব্যবহারকারী ওএস এক্স দ্বারা চালিত হতে পারে be


6

জিইউআই নিজেই:

PyQT হ'ল রেফারেন্স।

দ্রুত ব্যবহারকারীর ইন্টারফেসটি বিকাশের আরেকটি উপায় হ'ল একটি ওয়েব অ্যাপ লিখতে, এটি স্থানীয়ভাবে চালানো হয় এবং ব্রাউজারে অ্যাপটি প্রদর্শিত হয়।

এছাড়াও, আপনি লুবস হাসকো দ্বারা প্রস্তাবিত টিকিন্টার বিকল্পের জন্য গেলে আপনি পাইথন ছাড়াই উইন্ডোজ পরিবেশে আপনার অ্যাপটি চালানোর জন্য পোর্টেবলির চেষ্টা করতে পারেন।


4

আমি নিশ্চিত নই যে এটি করার সর্বোত্তম উপায়, তবে যখন আমি উইন্ডোজে রুবি জিইআইআই অ্যাপ্লিকেশনগুলি (পাইথন নয়, তবে একই "সমস্যা" ব্যবহার করি) তখন আমি কেবল একটি লিখি সি # তে শর্ট লঞ্চার যা আমার মূল স্ক্রিপ্টে কল করে। এটি একটি এক্সিকিউটেবলের সাথে সংকলন করে এবং আমার তখন একটি এক্সিকিউটেবল অ্যাপ্লিকেশন থাকে।


@ ব্রায়ান আপনি কি জুতো অ্যাপ্লিকেশন সম্পাদন করার জন্য _কীর কৌশলটি দেখেছেন ? এটি সম্ভবত জুতোহীন প্রোগ্রামগুলির সাহায্যে করা যেতে পারে।
অ্যাডাম লাসেক

এই অ্যাপ্লিকেশনগুলির জন্য, আমার ব্যবহারকারীর কেউই বেনামে নেই। আমি জানি তাদের রানটাইম আছে কিনা, এবং যদি তা না হয় তবে আমি এটি তাদের জন্য ইনস্টল করতে পারি। এই বিষয়টির মূল উদ্বেগ হ'ল কীভাবে কোনও কমান্ড প্রম্পট না খোলাই এবং প্রোগ্রামটির নাম অনুসারে রানটাইমের এক্সিকিউটেবল টাইপ না করে এই অ্যাপ্লিকেশনগুলি চালু করতে হয়।
ব্রায়ান ওয়ারশা

2
# 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

তারপরে আপনার পাইপেক্স ব্যবহার করা উচিত, উদাহরণস্বরূপ, অ্যাপ্লিকেশনটি চালানোর জন্য প্রয়োজনীয় সমস্ত ফাইল এক ফোল্ডারে আনার জন্য, এমনকি ব্যবহারকারী তার পিসিতে পাইথন না থাকলেও (আমি উইন্ডোজের কথা বলছি ... আপেল ওএসের জন্য প্রয়োজন নেই) একটি এক্সিকিউটেবল ফাইলের, আমি মনে করি, এটি এটি ইনস্টল করার কোনও প্রয়োজন ছাড়াই অজগর নিয়ে আসে।

এই ফাইলটি তৈরি করুন

1) একটি সেটআপ.পি তৈরি করুন

এই কোড সহ:

from distutils.core import setup
import py2exe

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

এটি একটি ফোল্ডারে সংরক্ষণ করুন

2) আপনার প্রোগ্রামটিকে সেটআপ.পি এর একই ফোল্ডারে রাখুন এই ফোল্ডারে যে প্রোগ্রামটি আপনি বিতরণযোগ্য করে তুলতে চান সেই প্রোগ্রামটি: এস: এল 4 এইচপি

পিএস: ফাইলের নাম পরিবর্তন করুন (l4h থেকে আপনার যে কোনও কিছুতে চান, এটি একটি উদাহরণ)

3) সেই ফোল্ডারটি থেকে সেন্টিমিডি চালান (ফোল্ডারে ডান ক্লিক করুন + শিফটটি নির্বাচন করুন এবং এখানে
সিএমডি শুরু করুন) 4) সেমিডিতে লিখুন:> পাইথন সেটআপ.পি পাইপেক্স
5) আপনার দূরবর্তী ফোল্ডারে আপনার
6 টি ফাইল দরকার রয়েছে আপনি) এটি জিপ করে এবং বিতরণ করতে পারে

Pyinstaller

এটি সেন্টিমিটার থেকে ইনস্টল করুন

**

পাইপ ইনস্টল পাইনিস্টলার

**

ফাইলটি যেখানে রয়েছে সেই ফোল্ডার থেকে এটি সেন্টিমিডি থেকে চালান

**

pyinstaller file.py

**


2

পাইসিম্পলজিইউ টিন্টার মোড়ক করে এবং পাইথন 3 এবং 2.7 এ কাজ করে। এটি Qt, WxPython এবং একটি ওয়েব ব্রাউজারেও সমস্ত প্ল্যাটফর্মের জন্য একই উত্স কোড ব্যবহার করে চলে।

আপনি কাস্টম জিইউআই তৈরি করতে পারেন যা আপনি টিন্টিন্টারে স্লাইডার (স্লাইডার, চেকবক্স, রেডিও বোতাম, ...) সন্ধান করে একই উইজেট ব্যবহার করে। কোডটি খুব কমপ্যাক্ট এবং পাঠযোগ্য।

#!/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()

পোস্ট পাইস্পিলজিইউআই কোড থেকে চিত্র তৈরি করা হয়েছে

পাইসিম্পলজিইউআই ডকুমেন্টেশনে বর্ণিত হিসাবে , আপনি চালিত .EXE ফাইলটি তৈরি করতে:

পাইনস্টলার - WF MyGUIProgram.py ram


1

আপনার সংকলনের দরকার নেই ম্যাক / উইন্ডোজ / লিনাক্সের জন্য পাইথন । এটি একটি ব্যাখ্যা করা ভাষা, সুতরাং আপনার নিজের সিষ্টেমটিতে পাইথন ইন্টারপ্রেটার ইনস্টল করা প্রয়োজন (এটি তিনটি প্ল্যাটফর্মের জন্য উপলব্ধ)।

একটি জিইউআই লাইব্রেরি যা ক্রস প্ল্যাটফর্মের জন্য কাজ করে, পাইথনের টাকায় / টিসিএল উইজেট লাইব্রেরিটি খুব ভালভাবে কাজ করে এবং আমি বিশ্বাস করি যে যথেষ্ট ক্রস প্ল্যাটফর্ম।

টিন্টিটার হ'ল পাই / পাইকার পাইথন ইন্টারফেস

পাইথন প্রকল্প ওয়েবপেজ থেকে:

টিন্টার পাইথনের একমাত্র গুইপ্রগ্রামিং সরঞ্জাম সরঞ্জাম নয়। তবে এটি সর্বাধিক ব্যবহৃত এবং এটি ইউনিক্স, ম্যাক এবং উইন্ডোজের মধ্যে বহনযোগ্য একমাত্র is


4
সুতরাং আপনি কীভাবে কেবল 1-পদক্ষেপ ইনস্টল করতে চান এমন লোকদের সিস্টেমে স্থাপন করার জন্য একটি প্যাকেজ প্যাকেজ তৈরি করবেন (উদাহরণস্বরূপ উইন্ডোজের একক ইনস্টলেশন প্যাকেজে ডাবল ক্লিক করুন)?
ক্রেগ ম্যাককুইন

তার জন্য আমার কয়েকটি মতামত জানা আছে: আপনি সম্ভবত ব্যাচ স্ক্রিপ্টে একটি ইনস্টলার লিখবেন বা লক্ষ্য সিস্টেমের জন্য সংকলিত যা প্রয়োজনীয় ফাইলগুলি কোথাও ফেলে দেবে এবং প্রক্রিয়াটিতে প্রয়োজনীয় লাইব্রেরি এবং রানটাইম ইনস্টল করবে।
জাস্টিন স্ট্যান্ডার্ড

1
পাইথনটিকে নিজের ইন্সটল করার অংশ হিসাবে ইনস্টল করা কিছুটা মজার বিষয় হয়ে উঠবে, কারণ পাইথনের ভুল সংস্করণ ইতিমধ্যে ইনস্টল হওয়ার সম্ভাবনাটি আপনাকে মোকাবেলা করতে হবে। আপনাকে পাশাপাশি থাকতে হবে, যেমন আপনার অ্যাপ্লিকেশনটি পাইথনের নতুন ইনস্টল করা সংস্করণটি অ্যাক্সেস করতে পারে তবে যে কোনও বিদ্যমান অ্যাপ্লিকেশন পাইথনের পুরাতন সংস্করণটি ব্যবহার করতে থাকবে। (অর্থাত্।। পি ফাইল ফাইল সমিতি বা প্যাথের মতো জিনিসগুলিতে গোলমাল না করে)
জোনাথন হার্টলি

সম্ভবত আপনার ইনস্টলার পাইথনের সঠিক সংস্করণের অস্তিত্বের জন্য যাচাই করবে এবং এটি যদি এটি খুঁজে পেয়ে থাকে তবে তা ব্যবহার করুন, অন্যথায় ইনস্টল প্রক্রিয়াটির অংশ হিসাবে পাইথনটি ইনস্টল করুন।
জাস্টিন স্ট্যান্ডার্ড

ঠিক - তবে এই দ্বিতীয় বিকল্পটি 'অন্যথায় ইনস্টল প্রক্রিয়াটির অংশ হিসাবে পাইথন ইনস্টল করুন' ঠিক তেমনই আমি বলছি। যে fidly হবে, যে কারণে আমি দিয়েছেন।
জোনাথন হার্টলি

0

আপনি appJarবেসিক GUI উন্নয়নের জন্য ব্যবহার করতে পারেন ।

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()

জিইউআই যখন চলছে তখন

অ্যাপজার সাইটে ডকুমেন্টেশন দেখুন ।

pip install appjarকমান্ড লাইন থেকে ইনস্টলেশন করা হয় ।


0

!!! প্রাণবন্ত !!!

আমি অবাক হয়ে দেখলাম কেউ কিভিয়ের কথা উল্লেখ করেনি !!!

আমি একবার টিন্টেটার ব্যবহার করে একটি প্রকল্প করেছি, যদিও তারা উকিল করেন যে এটির অনেক উন্নতি হয়েছে, এটি এখনও আমাকে উইন্ডোজ 98 এর অনুভূতি দেয়, তাই আমি কিভিতে স্যুইচ করেছিলাম ।

আমি টিউটোরিয়াল সিরিজটি অনুসরণ করে চলেছি যদি এটি সাহায্য করে ...

কীভি দেখতে কেমন লাগে তার ধারণা দেওয়ার জন্য এটি দেখুন (আমি যে প্রকল্পে কাজ করছি):

আমি যে প্রকল্পে কাজ করছি

এবং আমি এখন সবে মাত্র এক সপ্তাহ ধরে এটি নিয়ে কাজ করছি! কভির জন্য আপনি কি সুবিধা জিজ্ঞাসা করেন? পরীক্ষা করে দেখুন এই

আমি কেন এটি বেছে নেওয়ার কারণ হ'ল এটির চেহারা এবং এটি মোবাইলেও ব্যবহার করা যেতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.