Обучение 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”