تولید کننده آموزش و محصولات مبتنی بر برنامه نویسی مدرن

۳۸ مطلب با کلمه‌ی کلیدی «gui» ثبت شده است

اموزش gui با کتابخانه tkinter این قسمت callback

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت callback
خب یه برنامه ی ساده مینویسم و روی اون توضیح میدم
#******************CODE*******************
from tkinter import *
from tkinter import ttk

root=Tk()
root.geometry('640x480+200+200')
def button_callback():
    print('clicked')
button=ttk.Button(root,text='click',command=button_callback).pack()
#***********************************

ادامه مطلب...
۱۵ فروردين ۹۵ ، ۰۰:۵۴ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت geometry manager place

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت geometry manager place
خب دوستان این یکی خیلی دست ادم رو بازتر میذاره میشه توی x و y خاص ابزارمون رو نمایش بدیم کد زیر رو اجرا کنید
#**********************CODE******************
from tkinter import *
from tkinter import ttk

root=Tk()
root.rowconfigure(0,weight=1)
root.rowconfigure(1,weight=3)
root.columnconfigure(2,weight=1)
ttk.Label(root,text='bytton1',background='red').place(x=20,y=30)
ttk.Label(root,text='bytton1',background='blue').place(x=30,y=40)
ttk.Label(root,text='bytton1',background='orange').place(x=40,y=50)

ttk.Label(root,text='bytton1',background='green').place(x=50,y=60)

#*********************************************
خب میبینید که با تغییر اندازه ی روتمون اینها نغییری نمیکنند برای این مشکل از relx و rely استفاده میکنیم به صورت زیر
ttk.Label(root,text='bytton1',background='orange').place(relx=0.5,rely=0.5)
میبینید که تقریبا وسط پنجرمونه ولی سوال اینجاست که چطور میشه کاری کرد که دقیقا وسطش باشه جوابشم تنظیم anchor به 'center' است مثل زیر
ttk.Label(root,text='bytton1',background='orange').place(relx=0.5,rely=0.5,anchor='center')
میتونید نقطه ی صفر رو با relx و rely مقدار بدیم و از اونجا هم دوباره ایکس و y بدیم مثال زیر رو ببینید
ttk.Label(root,text='bytton1',background='pink').place(relx=0.5,x=100,rely=0.5,y=50,anchor='center')
خی تا الان از سمت جپ بالا مقدار میدادیم حالا میشه از سمت راست بالا هم مقدار داد ولی با منفی و باید relx رو برابر 1.0 قرار بدیم میدونید چرا دیگه مثال رو ببینید
ttk.Label(root,text='bytton1',background='green').place(relx=1.0,x=- 5,y=5)
 و میشه اندازه ی ابزار رو هم تعیین کرد
ttk.Label(root,text='bytton1',background='green').place(relx=1.0,x=- 5,y=5,relwidth= 0.5,relheight=0.5))
و
1 - place_slaves()
2 - place_configure()
3 - place_info()
4 - place_forget()
موفق باشید

۱۵ فروردين ۹۵ ، ۰۰:۵۳ ۰ نظر موافقین ۰ مخالفین ۱
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت geometry manager grid

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت geometry manager grid
خب این یکی یکم بهتره البته از نظر من توی این یکی از ایندکس برای نمایش استفاده میکنیم صفحه رو به قطعه های کوچیک تقسیم میکنه از سمن بالا چپ شماره ردیف و شماره ستون کد رو ببینید
#**********************CODE***********************

from tkinter import *
from tkinter import ttk

root=Tk()

ttk.Label(root,text='bytton1',background='red').grid(row=0,column=0)

ttk.Label(root,text='bytton1',background='blue').grid(row=1,column=0)

ttk.Label(root,text='bytton1',background='orange').grid(row=0,column=1)

ttk.Label(root,text='bytton1',background='green').grid(row=1,column=1)

#************************************************

حالا اگر بخوایم دقیقا زیر هم نباشند و یکم جابجا بشند و از قطعه ی خودشون بیرون بیاند یه راه داره کد زیر رو ببینید

#**********************CODE***********************

from tkinter import *
from tkinter import ttk

root=Tk()

ttk.Label(root,text='bytton1',background='red').grid(row=0,column=2 ,rowspan=2)

ttk.Label(root,text='bytton1',background='blue').grid(row=1,column=0,  columnspan=2)

ttk.Label(root,text='bytton1',background='orange').grid(row=0,column=0)

ttk.Label(root,text='bytton1',background='green').grid(row=0,column=1)

#************************************************
با این الگو میتونیم بذاریمشون زیر همدیگه اجرا کنید خودتون میفهمید و موقعیت رو هم میتونید با جهت های جغرافیایی بهش بدید
ttk.Label(root,text='bytton1',background='green').grid(row=0,column=1,stick ='e')
حالا کد زیر رو اجرا کنید
#**********************CODE***********************

from tkinter import *
from tkinter import ttk

root=Tk()

ttk.Label(root,text='bytton1',background='red').grid(row=0,column=2 ,rowspan=2,stick ='nsew')

ttk.Label(root,text='bytton1',background='blue').grid(row=1,column=0,  columnspan=2,stick ='nsew')

ttk.Label(root,text='bytton1',background='orange').grid(row=0,column=0,stick ='nsew')

ttk.Label(root,text='bytton1',background='green').grid(row=0,column=1,stick ='nsew')

#************************************************
میبینید که با تغییر اندازه تغییر نمیکنند برای این مشکل با توایع rowconfigure و  columnconfigure که متعلق به روت هستند و مشخص کردن وزن برای هرکدوم مشکل رو حل میکنیم مثال زیر رو ببینید
#**********************CODE***********************

from tkinter import *
from tkinter import ttk

root=Tk()
root.rowconfigure(0,weight=1)
root.rowconfigure(1,weight=3)
root.columnconfigure(2,weight=1)
ttk.Label(root,text='bytton1',background='red').grid(row=0,column=2 ,rowspan=2,stick ='nsew')

ttk.Label(root,text='bytton1',background='blue').grid(row=1,column=0,  columnspan=2,stick ='nsew')

ttk.Label(root,text='bytton1',background='orange').grid(row=0,column=0,stick ='nsew')

ttk.Label(root,text='bytton1',background='green').grid(row=0,column=1,stick ='nsew')

#************************************************
کد بالا رو اجرا کنید و پنجره رو تغییر اندازه بدید میبینید که در راستای row ردیف دوم به ازای هر یک پیکسل تغییر اندازه ی ردیف اول سه پیکسل تغییر اندازه میده و هر ردیفی رو که تعریف نکنیم یا ستون فرقی نمیکنه صفر درنظر گرفته میشه
درراستای ستون ها هم سومی رو که یک دادم تغییر میکنه وبقیه صفر هستند
توابع زیر هم مثل همون pack برای grid هم صادقند
1 - grid_slaves()
2 - grid_configure()
3 - grid_info()
4 - grid_forget()
موفق باشید

۱۵ فروردين ۹۵ ، ۰۰:۵۲ ۱ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت geometry manager pack

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت geometry manager pack
خب لالاخره رسیدیم به حالت های چیدن ایزار هامون روی صفحه اسم کلیشون geometry manager هست و الان من میخوام شما رو بیشتر با pack اشنا کنم همونی که تا الان ازش استفاده ی ساده میکردیم و باهاش اشنایی نداشتیم حالا براتون کامل توضیحش میدم
کد زیر رو اجرا کنید
#**********************CODE******************
from tkinter import *
from tkinter import ttk

root=Tk()

button1=ttk.Button(root,text='bytton1')
button1.pack()

#*********************************************

ادامه مطلب...
۱۵ فروردين ۹۵ ، ۰۰:۵۱ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت dialog

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت dialog
دیالوگ برای زمانی کاربرد داره که میخواید به کاربر پیامی رو نمایش بدید و یا نظرش رو بپرسید با یه مثال ساده شروع میکنم
#***********************CODE**********************
from tkinter import messagebox

messagebox.showinfo(title='error',message="you dont undrestand if don't  exercise")
#***************************************************
میبینید که اول یک پنجره اصل نمایش داده میشه و بعد پیام اخطار اجرا میشه چون رای اجرای پیام نیاز به یک پنجره اصلی داریم و سه مدل از این دیالوگ ها داریم که از اسمشون معلومه برای چه کاری هستند
1 - showinfo()
2 - showwarning()
3 - showerror()

ادامه مطلب...
۱۵ فروردين ۹۵ ، ۰۰:۲۳ ۱ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت style

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت style
خب دوستان قبلا د مورد state براتون توضیح دادم فقط اینجا میخوام به 10 تا از ورودی هایی که میتونه بگیره یه اشاره داشته باشم
1 - active
2 - disabled
3 - focus
4 - pressed
5 - selected
6 - background
7 - alternate
8 - invalid
9 - hover
10- readonly
خب دوستان دیدید که برای تعیین خصوصیت های هر ابزار از config اون استفاده میکردیم توی حالت عادی ولی وقتی از ttk استفاده میکنیم میتونیم یک تم تعریف کنیم و برای چندین ابزار استافده کنیم یا مثلا میتونیم تم دکمه هامون رو اختصاصی کنیم یا هر ابزار دیگه ای رو برای این کار اول یک استایل ایجاد میکنیم

ادامه مطلب...
۱۱ فروردين ۹۵ ، ۰۳:۳۴ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت scrollbar

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت scrollbar
خب احتمالا تا حالا به این مشکل خوردید که مثلا متنی که توی text نمایش دادید خیلی بزرگ بوده و در نتیجه تمام متن داخل text قابل نمایش نبوده (text منظورم ابزار text هستش) اگر توی برنامه هایی مثل ورد نگاه کرده باشید برای حل این مشکل ازیک ابزار کنار صفحه استفاده میکنند که یه حالت کشویی مانند داره و حرکت میکنه بعضی وقتا افقیه و به راست و چپ حرکت میکنه و بعضی وقتا عمودیه و به بالا و پایین حرکت میکنه حالا میخوام همین ابزار رو یادتون بدم طریقه ی ساختش رو در زیر اوردم

ادامه مطلب...
۱۰ فروردين ۹۵ ، ۰۴:۳۲ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت menu

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت menu
خب وستان مطمئنم تا حالا حتما توجه کردید که با هر برنامه ای کار میکنید قسمت بالای برنامه یه سری نوشته مثل file هست که وقتی روشون کلیک میکنید یه منو براتون باز میشه که میونید از این منوها گزینه ی مورد نیازتون رو پیدا کنید تا کارتون رو انجام بده حتی اگر یه نوت پد ساده رو هم باز کنید این منو ها رو داره خب بریم سرغ ساخت این منو ها در برنامتون توی پایتون اول باید یک منو بسازید که والدش root باشه چون میخوایم روی روت منو رو سوار کنیم کد زیر رو بینید تا توضیح میدم

ادامه مطلب...
۰۹ فروردين ۹۵ ، ۰۴:۲۸ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت canvas


با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت canvas
خب دوستان canvas برای کشیدن خطوط و اشکال هندسی وهمینطور استفاده از عکس ها هستش و حتی میشه از بقیه ابزار ها توی این ابزار استفاده کرد خب طریفه ی ساخت این ابزار به صورت زیر هست
MyCanvas= Cancas(root)
خب اوین چیزی که اموزش میدم کشیدن یک خط هست کد زیر رو ببینید تا توضیح بدم بهتون

ادامه مطلب...
۰۹ فروردين ۹۵ ، ۰۳:۳۰ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اموزش gui با کتابخانه tkinter این قسمت treeview

با سلام بهنام صباغی هستم با اموزش gui با کتابخانه tkinter این قسمت treeview
خب دوستان تری ویو برای نمایش اطلاعات به صورت درختی بکار میاد وقتی این قسمت از اموزش رو تکمیل کنید میفهمید که این ابزار به چه دردی میخوره و بعدها توی برنامه هایی که میسازیم ازش استفاده خواهیم کرد نحوه ی ساخت
MyTV= ttk.Treeview(root)#MyTV = MyTreeView
خب با ساختن و اضافه کردن این ابزار میبینید که فقط یه فضای جعبه مانند خالی برامون نمایش داده میشه و ما برای اضافه کردن ایتم بهش از تابع insert استفاده میکنیم مثلا من توی قطعه کد زیر یه ایتم به اسم firstitem ایجاد میکنم حواستون باشه که برای دسترسی به هر ایتم با منیاز به یک ایدی داریم خب بذارید اول کد رو بنویسم بعد توضیح میدم که متوجه بشید

ادامه مطلب...
۰۸ فروردين ۹۵ ، ۰۴:۲۷ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی