首页 > 解决方案 > 我如何在我的程序中完成我的 tkinter?

问题描述

所以我做了一个程序,它找到一个数字的因子我的问题是我如何将名称打印到 tkinter 我首先询问用户的姓名然后询问什么数字并显示该数字的因子然后程序询问用户是否他想输入另一个 0 表示退出我想要它,一旦他键入 0 以在 tkinter 中用他的名字表示感谢“谢谢!使用我的程序的名字!”

我对 tkinter 还很陌生,而且我的学习能力很差,我不知道如何在 tkinter 中写他的名字

from tkinter import *

print("Finding Factors Program by Joshua Lozada")

name=input("what is your name?")
print ("Hello",name, " Welcome To My Finding factors Program")


def factor_finder(x): 
    print("The factors of",x,"are:")
    for i in range(1, x + 1):     
        if x % i == 0:
            print(i) 


while True:
    try:
        num = int(input("Enter an integer (0 to exit): "))
        if num == 0:
             window = Tk()
             window.title("Thank you!")
             window.configure(background="black")
             Label (window, bg="black") 
             Label(window, text = "Thank you for using my program!" , bg 
="black", fg="white", font= "none 12 bold") .grid(row=0, column=0, 
sticky=W)
             break
        factor_finder(num)
    except ValueError:
        print("Sorry, you must enter an integer")

我希望程序结束后显示 tkinter 并显示感谢您使用我的程序的名字!

标签: pythonpython-3.xtkinter

解决方案


你应该把你的tkinter代码放在游戏循环之外;也就是说,在终止时,主循环应该退出(break),然后执行tkinter代码:

也许像这样?

import tkinter as tk

print("Finding Factors Program by Joshua Lozada")

name=input("what is your name?")
print ("Hello",name, " Welcome To My Finding factors Program")


def factor_finder(x): 
    print("The factors of",x,"are:")
    for i in range(1, x + 1):     
        if x % i == 0:
            print(i) 

while True:
    try:
        num = int(input("Enter an integer (0 to exit): "))
        if num == 0:
            break
        factor_finder(num)
    except ValueError:
        print("Sorry, you must enter an integer")

window = tk.Tk()
window.title("Thank you!")
window.configure(background="black")
tk.Label(window, bg="black") 
tk.Label(window, text="Thank you for using my program!", bg="black", fg="white", font= "none 12 bold").grid(row=0, column=0, sticky=W)

window.mainloop()

推荐阅读