У меня проблемы с созданием кнопки, которая печатает пи - PullRequest
1 голос
/ 29 января 2020

Я только начинаю с python в моем классе CompSci, и я возился и хотел создать кнопку для вывода значения pi. По некоторым причинам, созданная мной функция закрытия окна работает правильно, но программа автоматически печатает пи, а кнопка печати пи бесполезна. Вот мой код

from tkinter import *
import math
master = Tk()

def closeWindow():
    exit()

button = Button(master, text = "print pi", command = print(math.pi))
button.pack()

button = Button(master, text = "close this window", command = closeWindow)
button.pack()

mainloop()

Спасибо!

Ответы [ 3 ]

2 голосов
/ 29 января 2020

Как и выше, вы также можете сделать это:

import tkinter as tk

import math

def command():
    p.set(math.pi)


root = tk.Tk()
p = tk.StringVar()
p.set(' ')
button = tk.Button(root, text='Print pi', command=command)
button.pack()
label = tk.Label(root, textvariable=p)
label.pack()

root.mainloop()
1 голос
/ 29 января 2020

Вы можете использовать лямбду для вызова этой функции только при нажатии кнопки

button = Button(master, text = "print pi", command = lambda :print(math.pi))
1 голос
/ 29 января 2020

Вы можете передать функцию lambda опции command кнопки. Я передал лямбда-функцию для обеих кнопок здесь, так как функция обратного вызова имеет только строку кода.

import tkinter as tk
import math

master = tk.Tk()

button = tk.Button(master, text = "print pi", command = lambda: print(math.pi))
button.pack()

button = tk.Button(master, text = "close this window", command = lambda: exit())
button.pack()

tk.mainloop()

Или Вы можете заставить ее работать, создав отдельную функцию и просто добавив функцию в качестве обратного вызова для кнопка.

import tkinter as tk
import math
master = tk.Tk()

def closeWindow():
    exit()

def print_pi():
    print(math.pi)

button = tk.Button(master, text = "print pi", command = print_pi)
button.pack()

button = tk.Button(master, text = "close this window", command = closeWindow)
button.pack()

tk.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...