Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2020, 14:13   #1
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
Вопрос Отображение графических элементов (прописанных в разных файлах) в одном окне

Здравствуйте.
У меня есть форма в которой собраны основные элементы окна программы.
В частности, есть элемент:
Код:
frame = Frame(canvas)
- это рамка в которой я хочу отображать все последующие графические элементы необходимые для расчета.
Также у меня есть файл (Bolt_connection.py) с кодом для расчета величин, а также размещения графических элементов (таких как надписи, поля для ввода, кнопки и прочее) необходимых для данного модуля. В этот файл я экспортирую вышеуказанную рамку:
Код:
from Graphical_user_interface import frame
и затем использую его в качестве основного окна для остальных элементов этого модуля.
Затем я запускаю исполнение этого файла в файле с кодом основной формы:
Код:
runpy.run_path('Bolt_connection.py')
В итоге я получаю два (вложение 2) окна вместо одного, как мне того хочется . Как правильно экспортировать код из модуля, чтобы получить результат как во вложении 1?
Изображения
Тип файла: png Безымянный.png (54.5 Кб, 2 просмотров)
Тип файла: jpg Безымянный-2.jpg (78.9 Кб, 1 просмотров)
Solver`s вне форума Ответить с цитированием
Старый 19.06.2020, 21:52   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Правильно ли я понимаю, что вы хотите на форме разместить ту часть, которая отвечает за расчёты, и ту часть, на которой будет графическое изображение элемента?

В вашем случае слева поля и кнопки (такие элементы называют виджетами) через которые выполняется ввод данных, а справа окно для графики?
Если да, то:
Канва (холст), на котором рисуются изображения - это тоже виджет.
Он так же добавляется в головную форму и размещается так, как вам нравится:
Код:
cv = Canvas(root, width = MaxX,
            height = MaxY, bg = "white") # размещение канвы на форме
cv.grid(row = 0, columnspan = 9)   # это нулевая строка и 9-ть колонок
cv.bind('<Button-1>', showXY) # Это привязка клика  мыши на полотне к вызываемой функции
Тут канва сверху, а поля и кнопки внизу.
Но ничто не мешает разбить форму так, что бы виджеты были слева, а канва справа
Как-то так, ...

Последний раз редактировалось ViktorR; 19.06.2020 в 22:05.
ViktorR вне форума Ответить с цитированием
Старый 20.06.2020, 08:33   #3
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Правильно ли я понимаю, что вы хотите на форме разместить ту часть, которая отвечает за расчёты, и ту часть, на которой будет графическое изображение элемента?
Именно. У меня уже есть Canvas, который я создаю следующим образом:
Код:
x = root.winfo_width()
y = root.winfo_height()
canvas = Canvas(root, width=x, height=y)
От него уже наследуется
Код:
frame = Frame(canvas)
на котором размещаются все остальные элементы.
Получается, я просто должен заменить свой код создания холста на ваш?
Solver`s вне форума Ответить с цитированием
Старый 20.06.2020, 08:57   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Просто добавьте код создания холста.
Во вложении лабораторная по tkinter, которую я писал для студентов.
Возможно вам это поможет.
Вложения
Тип файла: pdf Лр_8.pdf (973.9 Кб, 4 просмотров)
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.06.2020, 09:22   #5
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

ViktorR, я вставил ваш код в свою программу и вот что в итоге получилось.

Правда я убрал привязку клика мышки, так как она мне не нужна, а также удалил row = 0, columnspan = 9 иначе канва вообще неправильно отображается.
Изображения
Тип файла: png Безымянный.png (74.4 Кб, 0 просмотров)
Тип файла: jpg Безымянный 2.jpg (81.8 Кб, 0 просмотров)
Solver`s вне форума Ответить с цитированием
Старый 20.06.2020, 09:25   #6
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

Если что, вот полный листинг основного окна программы:
Код:
from tkinter import *
import runpy
# Program window dimensions
from tkinter import Label, Tk, Frame, Scrollbar, Canvas, N, E, S

root = Tk()
root.title("Name")
root.geometry("1260x700")
root.update()
 # по ширине и высоте
Kp = 0.7 # используем 70% экрана
MaxX = root.winfo_screenwidth()* Kp # Текущие размеры
MaxY = root.winfo_screenheight()* Kp
canvas = Canvas(root, width = MaxX,
            height = MaxY, bg = "white") # размещение канвы на форме
canvas.grid(row = 0, columnspan = 9)   # это нулевая строка и 9-ть колонок
scroll_y = Scrollbar(root, orient="vertical", command=canvas.yview)

frame = Frame(canvas)
for i in range(50):
    Label(frame).grid()
    i += 1
# Label(frame, text='x' + str(x) + 'y' + str(y)).grid()
canvas.create_window(0, 0, anchor='nw', window=frame)
canvas.update_idletasks()

canvas.configure(scrollregion=canvas.bbox('all'),
                 yscrollcommand=scroll_y.set)

canvas.grid()
scroll_y.grid(row=0, sticky=E + N + S)
main_menu = Menu()

# Submenu for Export to...
file_menu = Menu(tearoff=0)
help_menu = Menu(file_menu, tearoff=0)
help_menu_export_to = Menu(help_menu, tearoff=0)
help_menu_export_to.add_command(label="Excel")
help_menu_export_to.add_command(label="Word")

# Submenu for Part calculation selection
calculation_selection_menu = Menu(tearoff=0)
help_menu2 = Menu(calculation_selection_menu, tearoff=0)
help_menu2_part_calculation_selection = Menu(help_menu2, tearoff=0)
help_menu2_part_calculation_selection.add_command(label="Bolted (screw) connection")
help_menu2_part_calculation_selection.add_command(label="Key connection")
help_menu2_part_calculation_selection.add_command(label="Pinned connection")

# File menu
file_menu.add_command(label="New")
file_menu.add_command(label="Save")
file_menu.add_cascade(label="Export to...", menu=help_menu_export_to)
file_menu.add_command(label="Open")
file_menu.add_command(label="Exit")

# Main menu
main_menu.add_cascade(label="File", menu=file_menu)
main_menu.add_cascade(label="About")
main_menu.add_cascade(label="Help")
main_menu.add_cascade(label="Part calculation selection", menu=help_menu2_part_calculation_selection)

runpy.run_path('Bolt_connection.py')
root.config(menu=main_menu)
root.mainloop()
Solver`s вне форума Ответить с цитированием
Старый 20.06.2020, 09:26   #7
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

А, вот код модуля расчета который я хочу отобразить в основном окне программы. К сожалению, он полностью не влазит перешлю по частям.
Код:
from tkinter.ttk import Combobox
from math import pi, exp, log10, tan, atan, cos, sqrt
from Graphical_user_interface import frame
# Program window dimensions
from tkinter import Label, Frame, LabelFrame, N, W, Entry, Text, Button

# Combining elements to select part material.
label_frame = LabelFrame(frame)
label_frame.grid(row=0, column=0, ipadx=100, sticky=N + W)
bottom_frame = Frame(label_frame)
bottom_frame.grid(row=1, column=0, sticky=N)


# Function to hide the form for selecting material.
def bth():
    bottom_frame.grid_remove()
    btn.config(text='Show')
    btn.config(command=bth2)


# Function to show the form for selecting material.
def bth2():
    bottom_frame.grid()
    btn.config(text='Hide')
    btn.config(command=bth)


# The designation of the function of the program submenu.
Label(label_frame, text='Select part materials (optional).').grid(row=0, sticky=W)

# Button for hiding and displaying submenus for material selection.
btn = Button(label_frame, text='Hide', highlightthickness=1, command=bth)
btn.grid(row=0, padx=200, pady=10)

# Designations of the selected parameters.
Label(bottom_frame, text='Part Name').grid(row=0, sticky=W)
Label(bottom_frame, text='Material selection').grid(row=0, column=1, sticky=W)
Label(bottom_frame, text='Ultimate strength (Ftu)').grid(row=0, column=2, sticky=W)
Label(bottom_frame, text='Young`s modulus (E)').grid(row=0, column=3, sticky=W)

# Name designations for parts.
Label(bottom_frame, text='Screw').grid(row=1, sticky=W)
Label(bottom_frame, text='Detail 1').grid(row=2, sticky=W)
Label(bottom_frame, text='Detail 2').grid(row=3, sticky=W)
Label(bottom_frame, text='Shim').grid(row=4, sticky=W)

# Selection of parameters for the screw.
combo = Combobox(bottom_frame)
combo['values'] = (1, 2, 3, 4, 5)
combo.current(0)
combo.grid(column=1, row=1)

# Selection of parameters for the Detail 1.
combo2 = Combobox(bottom_frame)
combo2['values'] = ('A', 'b', 'c', 'd', 'e')
combo2.current(0)
combo2.grid(column=1, row=2)

# Selection of parameters for the Detail 2.
combo3 = Combobox(bottom_frame)
combo3['values'] = ('a', 'B', 'c', 'd', 'e')
combo3.current(0)
combo3.grid(column=1, row=3)

# Selection of parameters for the shim.
combo4 = Combobox(bottom_frame)
combo4['values'] = ('a', 'b', 'C', 'd', 'e')
combo4.current(0)
combo4.grid(column=1, row=4)

# Variables for outputting parameters for the screw.
Label(bottom_frame, text='value_1_1').grid(row=1, column=2, sticky=W)
Label(bottom_frame, text='value_1_2').grid(row=1, column=3, sticky=W)

# Variables for outputting parameters for the Detail 1.
Label(bottom_frame, text='value_2_1').grid(row=2, column=2, sticky=W)
Label(bottom_frame, text='value_2_2').grid(row=2, column=3, sticky=W)

# Variables for outputting parameters for the Detail 2.
Label(bottom_frame, text='value_3_1').grid(row=3, column=2, sticky=W)
Label(bottom_frame, text='value_3_2').grid(row=3, column=3, sticky=W)

# Variables for outputting parameters for the shim.
Label(bottom_frame, text='value_4_1').grid(row=4, column=2, sticky=W)
Label(bottom_frame, text='value_4_2').grid(row=4, column=3, sticky=W)

# Frame for initial parameters
label_frame2 = LabelFrame(frame, text='Initial data')
label_frame2.grid(row=0, pady=155, column=0, sticky=W + N)

Label(label_frame2, text='Parameter Name').grid(row=0, column=0, sticky=N)
Label(label_frame2, text='Letter designation').grid(row=0, column=1, sticky=N)
Label(label_frame2, text='Parameter value').grid(row=0, column=2, sticky=N)
Label(label_frame2, text='Dimension Parameter').grid(row=0, column=3, sticky=N)
initial_data_names = ['Young`s modulus',
                      'Design stress of bolt material',
                      'Design stress of detail-1 material',
                      'Design stress of detail-2 material',
                      'Design stress of shim material',
                      'Bolt Thread Outer Diameter (Nominal)',
                      'The average diameter of the thread of the bolt',
                      'The diameter of the bolt along the bottom of the thread cavity',
                      'Thread pitch',
                      'Head height',
                      'Turnkey Size screw and Nut',
                      'Bolt length',
                      'Threaded screw length',
                      'Diameter of holes in parts',
                      '1st part thickness',
                      '2nd part thickness',
                      'Diameter of holes in washers',
                      '1st washer thickness',
                      '2nd Washer Thickness',
                      'The tangent of the angle of the cone pressure',
                      'Thread friction coefficient',
                      'Coefficient of friction at the end of the nut',
                      'Pre-tightening bolt force',
                      'Total axial (longitudinal) load']
list_of_initial_data_names = ['E', 'Sigma_pp', 'Sigma_pp_1', 'Sigma_pp_2',
                              'Sigma_pp_sh', 'd', 'd2', 'd3',
                              'P', 'h_r', 'S', 'l', 'b',
                              'd_od', 'h_d1', 'h_d2', 'd_osh', 'd_sh1',
                              'd_sh2', 'tg_a', 'f_p', 'f_tau', 'F_0', '-']
list_of_initial_data_dimension_parameter = ['N/mm*2', 'N/mm*2', 'N/mm*2', 'N/mm*2',
                                            'N/mm*2', 'mm', 'mm', 'mm', 'mm', 'mm',
                                            'mm', 'mm', 'mm', 'mm', 'mm', 'mm', 'mm',
                                            'mm', 'mm', '-', '-', '-', 'N', 'N', ]
Solver`s вне форума Ответить с цитированием
Старый 20.06.2020, 09:27   #8
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

Продолжение 1:
Код:
# Young`s modulus
Entry_A = Entry(label_frame2, width=7, font='Arial 14')
Entry_A.grid(row=1, column=2, sticky=N)
# Design stress of the bolt
Entry_B = Entry(label_frame2, width=7, font='Arial 14')
Entry_B.grid(row=2, column=2, sticky=N)
# Design stress of the detail 1
Entry_B_d1 = Entry(label_frame2, width=7, font='Arial 14')
Entry_B_d1.grid(row=3, column=2, sticky=N)
# Design stress of the detail 2
Entry_B_d2 = Entry(label_frame2, width=7, font='Arial 14')
Entry_B_d2.grid(row=4, column=2, sticky=N)
# Design stress of the shim
Entry_B_sh = Entry(label_frame2, width=7, font='Arial 14')
Entry_B_sh.grid(row=5, column=2, sticky=N)
# Outer diameter
Entry_C = Entry(label_frame2, width=7, font='Arial 14')
Entry_C.grid(row=6, column=2, sticky=N)
# Average screw thread diameter
Entry_D = Entry(label_frame2, width=7, font='Arial 14')
Entry_D.grid(row=7, column=2, sticky=N)
# Screw diameter on the bottom of the thread cavity
Entry_E = Entry(label_frame2, width=7, font='Arial 14')
Entry_E.grid(row=8, column=2, sticky=N)
# Thread pitch
Entry_F = Entry(label_frame2, width=7, font='Arial 14')
Entry_F.grid(row=9, column=2, sticky=N)
# Head height
Entry_G = Entry(label_frame2, width=7, font='Arial 14')
Entry_G.grid(row=10, column=2, sticky=N)
# Turnkey Size Bolt and Nut
Entry_H = Entry(label_frame2, width=7, font='Arial 14')
Entry_H.grid(row=11, column=2, sticky=N)
# Screw length
Entry_I = Entry(label_frame2, width=7, font='Arial 14')
Entry_I.grid(row=12, column=2, sticky=N)
# Threaded screw length
Entry_J = Entry(label_frame2, width=7, font='Arial 14')
Entry_J.grid(row=13, column=2, sticky=N)
# Diameter of holes in parts
Entry_K = Entry(label_frame2, width=7, font='Arial 14')
Entry_K.grid(row=14, column=2, sticky=N)
# Thickness of 1st part
Entry_L = Entry(label_frame2, width=7, font='Arial 14')
Entry_L.grid(row=15, column=2, sticky=N)
# 2nd part thickness
Entry_M = Entry(label_frame2, width=7, font='Arial 14')
Entry_M.grid(row=16, column=2, sticky=N)
# Diameter of holes in washers
Entry_N = Entry(label_frame2, width=7, font='Arial 14')
Entry_N.grid(row=17, column=2, sticky=N)
# 1st washer thickness
Entry_O = Entry(label_frame2, width=7, font='Arial 14')
Entry_O.grid(row=18, column=2, sticky=N)
# 2nd washer thickness
Entry_P = Entry(label_frame2, width=7, font='Arial 14')
Entry_P.grid(row=19, column=2, sticky=N)
# The tangent of the angle of the cone pressure
Entry_Q = Entry(label_frame2, width=7, font='Arial 14')
Entry_Q.grid(row=20, column=2, sticky=N)
# Coefficient of friction in the thread
Entry_R = Entry(label_frame2, width=7, font='Arial 14')
Entry_R.grid(row=21, column=2, sticky=N)
#  Coefficient of friction at the end of the nut
Entry_S = Entry(label_frame2, width=7, font='Arial 14')
Entry_S.grid(row=22, column=2, sticky=N)
# Preload torque bolt
Entry_T = Entry(label_frame2, width=7, font='Arial 14')
Entry_T.grid(row=23, column=2, sticky=N)
# Total axial (longitudinal) load
Entry_U = Entry(label_frame2, width=7, font='Arial 14')
Entry_U.grid(row=24, column=2, sticky=N)
initial_list_number = 0
while initial_list_number < len(initial_data_names):
    Label(label_frame2, text=initial_data_names[initial_list_number]).grid(row=initial_list_number + 1, column=0,
                                                                           sticky=W)
    Label(label_frame2, text=list_of_initial_data_names[initial_list_number]).grid(row=initial_list_number + 1,
                                                                                   column=1,
                                                                                   ipadx=10, sticky=W)
    Label(label_frame2, text=list_of_initial_data_dimension_parameter[initial_list_number]).grid(
        row=initial_list_number + 1, column=3, ipadx=1, sticky=W)
    initial_list_number = initial_list_number + 1

# A picture with explanations of some sizes.
# img_for_screw_connection = PhotoImage(file='Screw connection_image.png')
# label_for_screw_connection = Label(frame, width=600, height=360, image=img_for_screw_connection)
# label_for_screw_connection.grid(row=0, column=0, padx=650, sticky=N + W)

list_of_full_variables_names = ['1 The length of the working section of the screw without thread',
                                '2 Threaded screw working length',
                                '3 Bolt cross-sectional area (gross)',
                                '4 Bolt cross-sectional area (net)',
                                '5 The compliance of the threaded part of the bolt within the nut',
                                '6 Threaded bolt working area compliance',
                                '7 Compliance of a working section of a bolt without thread',
                                '8 Bolt Head Compliance',
                                '9 Bolt Compliance',
                                '10 1st Washer Compliance',
                                '11 2nd Washer Compliance',
                                '12 Screw and washer compliance (screw system)',
                                '13 1st part compliance',
                                '14 Part 2 compliance',
                                '15 Parts compliance (housing system)',
                                '16 Coefficient of influence of external load',
                                '17 Thread ratio',
                                '18 The coefficient of influence of torsion stress in the body of the bolt',
                                '19 Thread resistance moment',
                                '20 The moment of resistance at the end of the nut',
                                '21 Pre-tightening torque',
                                '22 Breaking equivalent force in a bolt',
                                '23 The maximum force in the bolt from pre-tightening',
                                '24 Pre-tightening bolt breaking force',
                                '25 Equivalent stress in the bolt from preceded.  puffs',
                                '26 Equ.  tension in the bolt from tightening in% of the calculated',
                                '27 Ultimate tensile force',
                                '28 Thread details2 per crumple',
                                '29 Thread details2 per cut',
                                '30 The ultimate external force from the condition of non-disclosure of the joint',
                                '31 Number of bolts',
                                '32 Thread length in the part 2 minimum']  # This list contains the full names of the
# variables. These names are displayed on the left in the calculation results.
list_of_variables_names = ['Lgl', 'Lр', 'Ab', 'An', 'lrg',
                           'lр', 'lgl', 'lg', 'lb', 'lш1',
                           'lш2', 'lsb', 'ld1', 'ld2', 'lsk',
                           'c', 'Kr', 'Kkr', 'Mr', 'Mt',
                           'Mcl', 'Fe destruction', 'F0 max',
                           'F0 Destroy', 'se0', 'se0 / sрр',
                           'F_max_rast', 'F_max_cm', 'F_max-cf',
                           'F_max', 'n', 't']  # This list contains symbolic designations of variables.
list_of_dimension_parameter = ['mm', 'mm', 'мм2', 'мм2', 'mm/N',
                               'mm/N', 'mm/N', 'mm/N', 'mm/N', 'mm/N',
                               'mm/N', 'mm/N', 'mm/N', 'mm/N', 'mm/N',
                               '-', '-', ' -', 'Nm', 'Nm', 'Nm',
                               'N', 'N', 'N', 'N/mm2', '%',
                               'N', 'N', 'N', 'N', '-', 'mm']  # This list contains the dimensions of the elements.

# A place to display calculated data.
txt = Text(frame, width=72, height=26)
txt.grid(row=0, column=0, padx=660, ipadx=255, ipady=220, sticky=N + W)  # pady=360,

list_of_names_for_variable_values = []
Solver`s вне форума Ответить с цитированием
Старый 20.06.2020, 09:28   #9
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

Продолжение 2:
Код:
def solve_equation():
    def solver(list_):
        list_.clear()
        l1 = float(Entry_I.get()) - float(
            Entry_J.get())  # The length of the working section of the screw without thread
        list_.append(float(l1))
        l2 = float(Entry_L.get()) + float(Entry_M.get()) + float(Entry_O.get()) + float(
            Entry_P.get()) - l1  # Threaded screw working length
        list_.append(float(l2))
        l3 = pi * (float(Entry_C.get()) ** 2) / 4  # Bolt cross-sectional area (gross)
        list_.append(float(l3))
        l4 = pi / 4 * (float(Entry_D.get()) / 2 + float(Entry_E.get()) / 2) ** 2  # Bolt cross-sectional area (net)
        list_.append(float(l4))
        l5 = exp(2.6111 * float(Entry_F.get()) / float(Entry_C.get()) - 0.48596) / float(Entry_C.get()) / float(
            Entry_A.get())  # The compliance of the threaded part of the bolt within the nut
        list_.append(float(l5))
        l6 = l2 / l4 / float(Entry_A.get())  # Threaded bolt working area compliance
        list_.append(float(l6))
        l7 = l1 / l3 / float(Entry_A.get())  # Compliance of a working section of a bolt without thread
        list_.append(float(l7))
        l8 = 0.15 / float(Entry_G.get()) / float(Entry_A.get())  # Bolt Head Compliance
        list_.append(float(l8))
        l9 = l5 + l6 + l7 + l8
        list_.append(float(l9))
        l10 = 2.3 / pi / float(Entry_N.get()) / float(Entry_A.get()) / float(Entry_Q.get()) * log10(
            (0.9 * float(Entry_H.get()) + float(Entry_N.get())) / (
                    0.9 * float(Entry_H.get()) - float(Entry_N.get())) * (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_O.get()) * float(Entry_Q.get()) - float(Entry_N.get()))
            / (0.9 * float(Entry_H.get()) + 2 * float(Entry_O.get()) * float(Entry_Q.get()) + float(Entry_N.get())))
        list_.append(float(l10))
        l11 = 2.3 / pi / float(Entry_N.get()) / float(Entry_A.get()) / float(Entry_Q.get()) * log10(
            (0.9 * float(Entry_H.get()) + float(Entry_N.get())) / (
                    0.9 * float(Entry_H.get()) - float(Entry_N.get())) * (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_P.get()) * float(Entry_Q.get()) - float(Entry_N.get()))
            / (0.9 * float(Entry_H.get()) + 2 * float(Entry_P.get()) * float(Entry_Q.get()) + float(Entry_N.get())))
        list_.append(float(l11))
        l12 = l9 + l10 + l11
        list_.append(float(l12))
        l13 = 2.3 / pi / float(Entry_H.get()) / float(Entry_A.get()) / float(Entry_Q.get()) * log10(
            (0.9 * float(Entry_H.get()) + 2 * float(Entry_O.get()) * float(Entry_Q.get()) + float(Entry_K.get())) / (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_O.get()) * float(Entry_Q.get()) -
                    float(Entry_K.get())) * (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_O.get()) * float(Entry_Q.get()) + 2 *
                    float(Entry_L.get()) * float(Entry_Q.get()) - float(Entry_K.get())) / (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_O.get()) * float(Entry_Q.get()) + 2 *
                    float(Entry_L.get()) * float(Entry_Q.get()) + float(Entry_K.get())))
        list_.append(float(l13))
        l14 = 2.3 / pi / float(Entry_K.get()) / float(Entry_A.get()) / float(Entry_Q.get()) * log10(
            (0.9 * float(Entry_H.get()) + 2 * float(Entry_P.get()) * float(Entry_Q.get()) + float(Entry_K.get())) / (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_P.get()) * float(Entry_Q.get()) -
                    float(Entry_K.get())) * (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_P.get()) * float(Entry_Q.get()) +
                    2 * float(Entry_M.get()) * float(Entry_Q.get()) - float(Entry_K.get())) / (
                    0.9 * float(Entry_H.get()) + 2 * float(Entry_P.get()) * float(Entry_Q.get()) +
                    2 * float(Entry_M.get()) * float(Entry_Q.get()) + float(Entry_K.get())))
        list_.append(float(l14))
        l15 = l13 + l14
        list_.append(float(l15))
        l16 = l15 / (l12 + l15)
        list_.append(float(l16))
        l17 = 0.5 * float(Entry_D.get()) / float(Entry_C.get()) * tan(
            atan(float(Entry_F.get()) / pi / float(Entry_D.get())) + atan(float(Entry_R.get()) / cos(pi / 6)))
        list_.append(float(l17))
        l18 = sqrt(1 + 48 * (float(Entry_C.get()) / float(Entry_E.get()) * l17) ** 2)
        list_.append(float(l18))
        l19 = float(Entry_T.get()) * float(Entry_C.get()) * l17 / 1000
        list_.append(float(l19))
        l20 = float(Entry_T.get()) / 3 * float(Entry_S.get()) * (
                (0.9 * float(Entry_H.get())) ** 3 - float(Entry_N.get()) ** 3) / (
                      (0.9 * float(Entry_H.get())) ** 2 - float(Entry_N.get()) ** 2) / 1000
        list_.append(float(l20))
        l21 = l19 + l20
        list_.append(float(l21))
        l22 = l4 * float(Entry_B.get())
        list_.append(float(l22))
        l23 = l22 / (l16 / (1 - l16) + l18)
        list_.append(float(l23))
        l24 = l22 / l18
        list_.append(float(l24))
        l25 = float(Entry_T.get()) * l18 / l4
        list_.append(float(l25))
        l26 = l25 / float(Entry_B.get()) * 100
        list_.append(float(l26))
        if float(Entry_T.get()) < l23:
            l27 = float(Entry_T.get()) / (1 - l16)
            list_.append(float(l27))
        else:
            l27 = '----'
            list_.append(l27)
        list_min_1 = [Entry_B.get(), Entry_B_d2.get()]
        dft = float(min(list_min_1))
        l28 = 0.9 * 0.25 * pi * (float(Entry_C.get()) ** 2 - float(Entry_E.get()) ** 2) * (
                (float(Entry_I.get()) - float(Entry_L.get()) - float(Entry_O.get()) - float(Entry_P.get())) /
                float(Entry_F.get()) - 2) * 1.5 * dft - float(Entry_T.get())
        list_.append(float(l28))
        l29 = 0.9 * pi * float(Entry_C.get()) * (
                float(Entry_I.get()) - float(Entry_L.get()) - float(Entry_O.get()) -
                float(Entry_P.get()) - 2 * float(Entry_F.get())) * 0.76 * 0.3 * dft - float(Entry_T.get())
        list_.append(float(l29))
        if l27 == '----':
            list_min_2 = [l28, l29]
        else:
            list_min_2 = [l27, l28, l29]
        l30 = min(list_min_2)
        list_.append(float(l30))
        l31 = float(Entry_U.get()) / l30
        list_.append(float(l31))
        l32 = float(Entry_I.get()) - float(Entry_L.get()) - float(Entry_M.get()) - float(Entry_O.get()) - float(
            Entry_P.get()) + float(Entry_C.get()) / 2
        list_.append(float(l32))
Solver`s вне форума Ответить с цитированием
Старый 20.06.2020, 09:28   #10
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

Окончание:
Код:
    solver(list_of_names_for_variable_values)
    l_1 = 0
    while l_1 < len(list_of_full_variables_names):
        if 0 <= l_1 <= 3:
            Label(txt, text=list_of_full_variables_names[l_1]).grid(row=l_1, column=0, sticky=W)
            Label(txt, text=list_of_variables_names[l_1]).grid(row=l_1, column=1, ipadx=10, sticky=W)
            Label(txt, text='%.3f' % list_of_names_for_variable_values[l_1], font='Arial 14').grid(row=l_1,
                                                                                                   column=2,
                                                                                                   sticky=W)
            Label(txt, text=list_of_dimension_parameter[l_1]).grid(row=l_1, column=3, ipadx=1, sticky=W)
            l_1 = l_1 + 1
        if 4 <= l_1 <= 14:
            Label(txt, text=list_of_full_variables_names[l_1]).grid(row=l_1, column=0, sticky=W)
            Label(txt, text=list_of_variables_names[l_1]).grid(row=l_1, column=1, ipadx=10, sticky=W)
            Label(txt, text=list_of_names_for_variable_values[l_1], font='Arial 14').grid(row=l_1,
                                                                                          column=2,
                                                                                          sticky=W)
            Label(txt, text=list_of_dimension_parameter[l_1]).grid(row=l_1, column=3, ipadx=1, sticky=W)
            l_1 = l_1 + 1
        if 15 <= l_1 <= 25:
            Label(txt, text=list_of_full_variables_names[l_1]).grid(row=l_1, column=0, sticky=W)
            Label(txt, text=list_of_variables_names[l_1]).grid(row=l_1, column=1, ipadx=10, sticky=W)
            Label(txt, text='%.3f' % list_of_names_for_variable_values[l_1], font='Arial 14').grid(row=l_1,
                                                                                                   column=2,
                                                                                                   sticky=W)
            Label(txt, text=list_of_dimension_parameter[l_1]).grid(row=l_1, column=3, ipadx=1, sticky=W)
            l_1 = l_1 + 1
        if l_1 == 26:
            Label(txt, text=list_of_full_variables_names[l_1]).grid(row=l_1, column=0, sticky=W)
            Label(txt, text=list_of_variables_names[l_1]).grid(row=l_1, column=1, ipadx=10, sticky=W)
            if list_of_names_for_variable_values[26] == '----':
                Label(txt, text='----', font='Arial 14').grid(row=l_1, column=2, sticky=W)
            else:
                Label(txt, text='%.3f' % list_of_names_for_variable_values[l_1], font='Arial 14').grid(row=l_1,
                                                                                                       column=2,
                                                                                                       sticky=W)
            Label(txt, text=list_of_dimension_parameter[l_1]).grid(row=l_1, column=3, ipadx=1, sticky=W)
            l_1 = l_1 + 1
        if 27 <= l_1 < len(list_of_full_variables_names):
            Label(txt, text=list_of_full_variables_names[l_1]).grid(row=l_1, column=0, sticky=W)
            Label(txt, text=list_of_variables_names[l_1]).grid(row=l_1, column=1, ipadx=10, sticky=W)
            Label(txt, text='%.3f' % list_of_names_for_variable_values[l_1], font='Arial 14').grid(row=l_1,
                                                                                                   column=2,
                                                                                                   sticky=W)
            Label(txt, text=list_of_dimension_parameter[l_1]).grid(row=l_1, column=3, ipadx=1, sticky=W)
            l_1 = l_1 + 1


but = Button(frame, text="Solve", command=solve_equation)
but.grid(row=0, column=0, padx=550, pady=770, sticky=N + W)
Solver`s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение кода в разных местах на разных разрешениях S_A_N_T_A HTML и CSS 1 29.10.2018 13:35
Несколько ответов в одном окне SoDenis Помощь студентам 1 29.03.2017 10:05
Отображение меню в .php -файлах в разных браузерах griffi HTML и CSS 0 26.01.2010 16:48
Отображение меню в .php -файлах в разных браузерах griffi PHP 2 26.01.2010 16:33
Программа для скрытия информации с графических и текстовых файлах (Delphi\C++) Ferrat Помощь студентам 12 04.05.2009 04:25