Как вызвать отдельную программу на Python с помощью кнопки в tkinter?

Я хочу создать кнопку в tkinter и при нажатии этой кнопки вызвать другую программу в эту программу. (это просто пример) Скажем, у меня есть одна программа, которая показывает кнопку с надписью «Квадратный корень», и у меня есть другая программа, которая принимает число, такое как: 4, используя функцию input(), и находит квадратный корень из 4. Я хочу, чтобы эта кнопка при нажатии вызывала «программу извлечения квадратного корня» и вводила ее в программу «кнопки». (Опять же, просто пример. Если бы я действительно хотел работать с квадратным корнем, я бы просто сделал другую функцию с именем: def square_root())

#Button.py
from tkinter import *
root = Tk()

def call_the_other_program():
    #This is the part I don't know how to do...
    #Do I import the different program somehow?
    #Is this even possible xD
b = Button(root, text = "Square root", command = call_the_other_program())

Программа квадратного корня:

import math
x = input("input a number")
print("the square root of", x, "is:", math.sqrt(x))
#I want this to be the program that is called

Спасибо, что объяснили мне! 😊

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете определить функцию square_root в other_prog.py, импортировать ее и вызвать.

Я бы посоветовал вам сначала хранить все связанные файлы в одной папке, чтобы не усложнять процесс импорта.

other_prog.py

import math

def square_root():
    x = float(input('enter a square'))
    return math.sqrt(x)

GUI.py

import tkinter as tk
from other_prog import square_root


def call_square_root():
    print(f'the square root is {square_root()}')


root = Tk()
b = Button(root, text = "Square root", command=call_square_root())
b.pack()

root.mainloop()

Пример немного надуманный; команда кнопки может быть напрямую square_root, как в NameSpace после импорта.

Другие вопросы по теме