ورود

View Full Version : آموزش: gui python ide



theinfinity
جمعه 24 اردیبهشت 1389, 11:57 صبح
امروز که داشتم سوال ها رو چک می کردم اکثرا پرسیده شده ide برای پایتون کجا گیر می آد.
از اونجایی که تا اسم ide می آد شکل visual studio مجسم میشه من یه توضیح کوچولو میدم که چرا python همچین چیزی نداره ،
python چند تا ابزار (toolkit) برای ساختن یه محیط گرافیکی برای کاربر داره که نکته ی جالب اینجاست که هیچ کدوم به عنوان استاندارد واقعی برای این کار تو پایتون انتخاب نشدن، البته یه بحث هایی راجع به Tkinter شده ولی هنوز خیلی ها دوس ندارن از Tkinter استفاده کنن.
یه چندتایی از این ابزار ها که تو خود python man اسم برده شدند:
Tkinter: خیلی کار کردن باهاش سادست خیلی جاها ازش به عنوان ابزار استاندارد نام برده شده، روی python 2.6 هستش و از همه مهمتر خودمم از همین استفاده می کنم. ولی یه مشکل داره توانایش به اندازه بقیه نیست شاید بخاطر همین کار کردن باهاش سادس. http://www.tcl.tk
p.s:کاملا portable
wxwidget: این یکی واقعا قویه، ولی خوب رو ورژن های قبلی پایتون نبود جدید رو امتحان نکردم، نصبش واسه تازه کارا یه خورده سخته! یه class library هستش که با c++ نوشته شده که python iterface ش wxpython اکثرا با همین اسم هم شناخته میشه، اینم portable و اگه یه وقت سرتون به جایی خورد طالب شدین دانلودش کنین به اینجا سر بزنید: http://www.wxpython.org
QT: من ازش استفاده نکردم ولی فقط می دونم دو تا نسخه داره یکی pyqt و pykde(برای kde) دومی کاملا مجانیه ولی اولی فقط برای پروژه های opensource که باید براشون یه لایسنس بگیری، هر جفتشون اینجا پیدا می شنhttp://www.riverbankcomputing.co.uk
راستی من از این یکی زیاد نمی دونم ولی احتمالا خیلیا باهاش کار کردن اگه چیزی رو اشتباه گفتم بگید لطفا
بقیه تو ایران زیاد رایج نیستن
gtk+: اینم سایتش http://www.pygtk.org/
fltk: سایتش اینه http://pyfltk.sourceforge.net/
و fox and opengl به دلیل نداشتن حس تایپ از توضیحات اضافه معذوریم
حالا هر کس از هر کدومش خواست می تونه استفاده کنه که دقیقا مشکل همینجاس چون همه از یه چیز استفاده نمیکنن یه ide قدرتمند ساخته نمیشه
برای wxpython میگن میشه از SPE-0.8.4.c-wx2.6.1.0 استفاده کرد که خیلی راحت بگم در مقابل vs2008 بچه بازیه!
برای qt هم میگن یه چیزایی هست من با این اینترنت زغال سنگی یه مدت پیش دانلودش کردم دیدم در مقابله vs2008********اسمش eric4 python ide
جدیدا یه حرکتایی هم رو Tkinter شده که همشون ارزش تایپ ندارن می تونین visual Tkinter رو دانلود کنین ببینین(البته اگه وقت و اینترنت مفت دارین)
حالا اگه یه استاندارد انتخاب بشه(احتمالا Tkinter) همه میشینن دور هم بدون کل کل یه ide گرافیکی opensource می نویسن

all_vb_net
یک شنبه 26 اردیبهشت 1389, 10:47 صبح
واسه تازه کارا بیشتر توضیح میدی؟ نحوه نصب و ...

theinfinity
یک شنبه 26 اردیبهشت 1389, 20:04 عصر
تازه کار بستگی داره چجور کاری بخواد بکنه
اگه می خواید یه فرم بسازید که 4 تا دکمه داشته باشه می تونم یه آموزش با Tkinter بزارم
البته اگه کسی دوست داشته باشه؟
ولی یه چیزی اگه برنامه های تجاری می نویسید که به محیط کاربری باحال نیاز داره از پایتون استفاده نکنید چون 1. خیلی طول می کشه دور فرمتون گل بکشید یا از اینجور تزیینات
2. ابزارش کمه و منابعش به زبان فارسی وجود نداره!
ولی اگه برنامه هایی با سطح کاربری پایین می خوایین مثلا کار کردن با پروسس ها
واقعا محشره همین تازگیا فهمیدم حتی thread main رو می تونید خیلی راحت override کنین
کاری که تو c# کلی دنگ و فنگ داره

theinfinity
چهارشنبه 29 اردیبهشت 1389, 03:37 صبح
همونطور که گفتم ابزار های خیلی زیادی برای ساخت ظاهر گرافیکی برنامه ها در پایتون به کار میره که من اینجا از جوادترینشون(غرب زده ها میگن standard) یه مثال ساده میارم,اسمشم Tkinter هست.
یه فرم می سازم، یه دگمه می زارم توش که وقتی روش کلیک بشه یه چیزی تو cmd چاپ کنه، یه txtbox می زارم که هیچ کاری نمی کنه(نکته انحرافی برنامه) و همین
برای شروع من از این ide استفاده می کنم اگه دوس داشتین دانلود کنین بد نیس
http://cdnetworks-us-2.dl.sourceforge.net/project/easyeclipse/EasyEclipse%201.2%20for%20Python/1.2.2/easyeclipse-python-1.2.2.2.exe
ایران تحریمه موقع دانلود ip رو تغییر بدین.


import Tkinter;

def sia():
print "sia";

form1=Tkinter.Tk();
form1.title("arash");
form1.b=Tkinter.Button(form1);
form1.b["text"] = "sia"
form1.b["fg"] = "blue"
form1.b["command"]= sia;
#g.b.pack({"side": "left"})
form1.b.grid(padx=50,pady=20);
form1.t=Tkinter.Entry(form1);
form1.t.grid(padx=100,pady=200);
form1.mainloop();
خب اون اول tkinter رو وارد می کنیم
بعد یه شی tk می سازیم(میشه از tk یا tcl استفاده کرد که tk ابزار بهتری داره اگه می خواید بیشتر بدونید به python man مراجعه کنید)اسمش form1e
بعد یه widget از نوع دگمه به نام b ساخته میشه که نامرئیه(فعلا)(widget هر چیزی داخل فرمتونه)
چیزی که رو دگمه نوشته میشه ست شده
رنگ نوشتار b آبی شده
تابعی که بعد از کلیک کردن روی b اجرا میشه(sia) ست شده
وقتی یه widget ساخته میشه مرئی نیس و شما سه راه دارین که اونو مرئی کنین:1.با pack که comment شده 2. با متد grid که ازش استفاده کردم و با دو تا آرگیومنتش مکان دگمه رو نشون دادم و از همه مهم تر روش سوم(نمی دنم چیه فقط میدونم که یه چیزه سومیم هس)
بعدش یه widget دیگه ساخته شده که میشه توش چیز نوشت(سرکاریه)
و آخرشم با متد mainloop منتظر حرکتای کاربر می شه
/////////////////////////////////////////////////////////////////////////////
یه سری منابع هستن برا یادگرفتن tkinter البته فارسی نیستن
http://www.amazon.com/exec/obidos/ASIN/020163337X
http://www.amazon.com/exec/obidos/ASIN/0130220280
http://www.nmt.edu/tcc/help/pubs/tkinter/tkinter.pdf

saleh.hi.62
چهارشنبه 29 اردیبهشت 1389, 17:46 عصر
عزیز نیاز نیست این همه کد بنویسی !
xRope رو نشب من و به صورت ویژوال با Tkinter کار کن.

http://sourceforge.net/projects/xrope/

theinfinity
پنج شنبه 30 اردیبهشت 1389, 00:54 صبح
1.آموزش
2.xrope هر 5 خطی که مسازه 6 تا exception میبینی
بهر حال مرسی بابت راهنمایی

saleh.hi.62
پنج شنبه 30 اردیبهشت 1389, 06:46 صبح
شما تا به حال به شخصه باعاش کارکردین؟
اگه با Tkinter آشنایی داشته باشین نیازی به آوزش فکر نمیکنم باشه.

موفق باشید.