Обучение Python (72 частью серии)
Сегодня мы охватим планировку координат в Tkinter
Сегодня мы сделаем программу, которая примет участие в вкладах принципа и скидки и рассчитать общую цену.
Вот спецификации программы
- Один ярлык для текстового принципа
- Один ярлык для скидки текста
- Один ярлык для общей стоимости
- Одна кнопка шоу.
- Один слайдер для значений скидки
- Одна спина для основной суммы
Теперь, когда у нас есть все спецификации, давайте начнем строить программу-
from tkinter import *
master=Tk()
master.geometry("300x200")
Lbl1=Label(master,text="Principle")
Lbl2=Label(master,text="Discount")
Lbl3=Label(master,text="Total. ",font="20px")
spinbox=Spinbox(master,from_=10, to=100)
slider=Scale(master,from_=0, to=100, tickinterval=20, length= 150, orient="horizontal")
def display():
a=int(spinbox.get())-int(spinbox.get())*int(slider.get())/100
Lbl3.config(text=str(a)+"$")
button=Button(master,text="Calculate",command=display)
spinbox.pack()
Lbl1.pack()
slider.pack()
Lbl2.pack()
button.pack()
Lbl3.pack()
mainloop()
Программа работает хорошо, но это не то, как мы хотим отображать виджеты. Нам нужно настроить внешний вид. Мы хотим, чтобы первые две этикетки были прилегающими к спине и слайдере виджеты. Для этого мы используем макет координат. Макет пакета недостаточно, поскольку он упаковывает все виджеты в только центральную линию. Следовательно, мы разместим их по координату.
Мы можем установить координаты виджетов, используя место метод. Пример Widget.place (x = 30, y = 20) Вот окончательная программа, теперь с силой места размещения.
from tkinter import *
master=Tk()
master.geometry("300x200")
Lbl1=Label(master,text="Principle")
Lbl2=Label(master,text="Discount")
Lbl3=Label(master,text="Total. ",font="20px")
spinbox=Spinbox(master,from_=10, to=100)
slider=Scale(master,from_=0, to=100, tickinterval=20, length= 150, orient="horizontal")
def display():
a=int(spinbox.get())-int(spinbox.get())*int(slider.get())/100
Lbl3.config(text=str(a)+"$")
button=Button(master,text="Calculate",command=display)
spinbox.place(x=100, y=0)
Lbl1.place(x=0,y=0)
slider.place(x=100, y=50)
Lbl2.place(x=0,y=70)
button.place(x=150,y=130)
Lbl3.place(x=150,y=170)
mainloop()
Одно следует отметить, что макеты остаются прежними, даже если окно изменяется.
Обучение Python (72 частью серии)
Оригинал: “https://dev.to/aatmaj/learning-python-intermediate-course-day-31-coordinate-positions-4eah”