Уведомления

Группа в Telegram: @pythonsu

#1 Март 21, 2024 14:22:20

AlewD
Зарегистрирован: 2023-03-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

Делаем с ребенком программу для определения веса того или иного объекта на той или иной планете (P=m*g) при помощи Ткинтер.
И во в чем проблема - я не понимаю, как привязать числовые значения (для расчетов по заранее вбитой формуле) к текстовым вариантам, используя Combobox/
Вот код. И ПОЧЕМУ-ТО СОДЕРЖИМОЕ VALUES В КВАДРАТНЫХ СКОБКАХ НЕ ОТОБРАЖАЕТСЯ, ПОЭТОМУ Я ИХ СЛОВАМИ ЗАПИСАЛ

from tkinter import *
from tkinter.ttk import Combobox
from tkinter import messagebox

def calculate_dir():
m = int(massobject.get()) #massobject это масса объекта
g = float(boost.get()) #boost это ускорение свободного падения
p = m*g
p = round(p, 0)
if p>0:
messagebox.showinfo('dop-pythonguides', f'{m} на {g} весит {p} кг')
elif (p==0):
messagebox.showinfo('dop-pythonguides' f'{m} в открытом космосе вообще ничего не весит ‘)
elif (p<0):
messagebox.showinfo(’dop-pythonguides' f'Значение не просчитано - проверьте правильность ввода данных')

window = Tk()
window.title('Кто сколько весит на планетах')
window.geometry('400x200')

frame = Frame(
window,
padx=10,
pady=10
)
frame.pack(expand=True)

massobject_lb = Label(
frame,
text='Выберите объект ‘
)
massobject_lb.grid(row=3, column=1)

boost_lb = Label(
frame,
text=’Выберите планету ‘
)
boost_lb.grid(row=4, column=1)

massobject = Combobox (
frame,
values = квадратная скобка “Человек”, “Кошка”, “Собака”, “Слон”, “Синий кит”, “Экскаватор” квадратная скобка
)
massobject.grid(column=2, row=3)

boost = Combobox (
frame,
values = квадратная скобка “Солнце”, “Меркурий”, “Венера”, “Земля”, “Луна”, “Марс”, “Юпитер”, “Сатурн”, “Уран”, “Нептун”, “Плутон” квадратная скобка
)
boost.grid(row=4, column=2, pady=5)

cal_btn = Button(
frame,
text=’Рассчитать ',
command=calculate_dir
)
cal_btn.grid(row=8, column=2)

window.mainloop()

Отредактировано AlewD (Март 21, 2024 14:40:47)

Офлайн

#2 Март 21, 2024 18:04:36

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1310
Репутация: +  113  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

[code python]между этими тегами вставляйте код[/code]

Офлайн

#3 Март 21, 2024 19:00:18

AlewD
Зарегистрирован: 2023-03-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

xam1816
Чего? Какой код? Где он?

Прикреплённый файлы:
attachment Screenshot_20240321-200003_Yandex Start.jpg (427,9 KБ)

Офлайн

#4 Март 21, 2024 19:13:01

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1310
Репутация: +  113  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

AlewD
Чего? Какой код? Где он?
AlewD
И ПОЧЕМУ-ТО СОДЕРЖИМОЕ VALUES В КВАДРАТНЫХ СКОБКАХ НЕ ОТОБРАЖАЕТСЯ, ПОЭТОМУ Я ИХ СЛОВАМИ ЗАПИСАЛ
 my_list = ['a', 'b', 'c']

чтобы скобки отображались код нужно обрамлять тегами, выше писал

Отредактировано xam1816 (Март 21, 2024 19:17:45)

Офлайн

#5 Март 21, 2024 19:47:32

AlewD
Зарегистрирован: 2023-03-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

xam1816
Понял 👍

Офлайн

#6 Март 22, 2024 17:17:10

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1310
Репутация: +  113  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

AlewD
как привязать числовые значения (для расчетов по заранее вбитой формуле) к текстовым вариантам

сделать словарь типа animals = {'кошка': 5, ‘собака’: 10}

и потом
  
m = int(animals[massobject.get()]) #massobject это масса объекта

Офлайн

#7 Март 26, 2024 07:22:19

AlewD
Зарегистрирован: 2023-03-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

xam1816
Спасибо большое. А если вариантов будут сотни - так же делать?

Офлайн

#8 Март 26, 2024 22:15:29

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1310
Репутация: +  113  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

AlewD
А если вариантов будут сотни - так же делать?
значит это будет храниться в базе данных.

Офлайн

#9 Март 27, 2024 12:49:16

AlewD
Зарегистрирован: 2023-03-29
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter - Присвоить числовые значения в текстовых вариантах в Combobox

Спасибо. Тему можно закрыть.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version