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

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

اموزش 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()

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

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