При попытке создать окно для ввода данных выводится данная ошибка:
Traceback (most recent call last):
File "C:\Users\Никита\Desktop\Питон\часть 1. Экраноплан общее\Экраноплан 31.08.2022.py", line 55, in <module>
mпн=(80+20)*nпасс
TypeError: unsupported operand type(s) for *: 'int' and 'Entry'
Если меняю последнюю строчку кода на:
nпасс=float(tk.Entry(frame1))
То получаю:
Traceback (most recent call last):
File "C:\Users\Никита\Desktop\Питон\часть 1. Экраноплан общее\Экраноплан 31.08.2022.py", line 54, in <module>
nпасс=float(tk.Entry(frame1))
Если после Entry пишу
.get
, то получаю ошибку:
Traceback (most recent call last):
File "C:\Users\Никита\Desktop\Питон\часть 1. Экраноплан общее\Экраноплан 31.08.2022.py", line 54, in <module>
nпасс=float(tk.Entry.get(frame1))
File "C:\Python\lib\tkinter\__init__.py", line 3043, in get
return self.tk.call(self._w, 'get')
TclError: bad option "get": must be cget or configure
Код:import docx
from docx.shared import Pt
from datetime import date
from docx.enum.text import WD_ALIGN_PARAGRAPH
import tkinter as tk
#узнаю и вбиваю сегодняшнее число. Перевожу в тип строки
current_date = date.today()
t=str(current_date)
#создаю txt файл
b=t+' Экраноплан.Общее.docx'
my_file = open(b, "w+",encoding='utf-8')
#исходные данные
mкон=0.39
mсу=0.16
mоб_упр=0.12
mт=0.12
g=9.81
#Создаём окно
window=tk.Tk()
window.title('Экраноплан')
window.geometry('900x900')
#Мин размер окна
window.minsize(200,200)
#Создание рабочей области внутри окна (рамка). Внутри скобки от Frame заданы характеристики области
frame1=tk.Frame(window,width=900,height=900,bg='white')
#Фиксируем frame на плосксости. Задаём коэф-ты масштабирования
frame1.place (relx=0,rely=0,relwidth=1,relheight=1)
#Надписи
#l_1=tk.Label(frame1,text='Экраноплан')
#Положение текста и надписей
#l_1.grid(row='0',column='0',sticky='w',padx=10,pady=10)
#Создаём документ
doc =docx.Document()
# задаем стиль текста по умолчанию
style = doc.styles['Normal']
# название шрифта
style.font.name = 'Times New Roman'
# размер шрифта
style.font.size = Pt(14)
#расчёты и ввод данных
#Абзац
para1=doc.add_paragraph('5 РАСЧЁТ ВЗЛЁТНОЙ МАССЫ')
para1.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER
doc.add_paragraph('')
t1=tk.Label(frame1,text='5 РАСЧЁТ ВЗЛЁТНОЙ МАССЫ')
t1.grid(row='0',column='0',sticky='w',padx=10,pady=10)
t2=tk.Label(frame1,text='Введите число пассажиров на экраноплане')
t2.grid(row='0',column='1',sticky='e',padx=10,pady=10)
nпасс=tk.Entry(frame1))
#Цикл, который будет отслеживать все изменения внутри приложения
window.mainloop()
doc.save(b)