Python Tkinter ISBN转换器需要一种在Tkinter页面上打印结果的方法
您好,我现在的代码是一个工作阶段,我只需要一个结果打印的方式,因为目前它不是。我还希望转换器能够正常工作,10位数字,第11位数字是转换器找到的数字。Thanls注意按钮的命令如何调用函数来执行操作:Python Tkinter ISBN转换器需要一种在Tkinter页面上打印结果的方法,python,tkinter,isbn,Python,Tkinter,Isbn,您好,我现在的代码是一个工作阶段,我只需要一个结果打印的方式,因为目前它不是。我还希望转换器能够正常工作,10位数字,第11位数字是转换器找到的数字。Thanls注意按钮的命令如何调用函数来执行操作: import sys from tkinter import * def main(): mtext = ment.get() mlabel2 = Label(top, text=mtext).pack() def isbn(): digits = [(11
import sys
from tkinter import *
def main():
mtext = ment.get()
mlabel2 = Label(top, text=mtext).pack()
def isbn():
digits = [(11 - i) * num for i, num in enumerate(map(int, list()))]
digit_11 = 11 - (sum(digits) % 11)
if digit_11 == 10:
digit_11 = 'X'
digits.append(digit_11)
isbn_number = "".join(map(str, digits))
label2 = Label(top, text = "Your ISBN number is",).pack()
top = Tk()
top.geometry("450x450+500+300")
top.title("Test")
button = Button(top,text="OK", command = isbn, fg = "red", bg="blue").pack()
label = Label(top, text = "Please enter the 10 digit number").pack()
ment= IntVar()
mEntry = Entry(top,textvariable=ment).pack()
您还需要在主窗口小部件上调用
.mainloop()
,以启动整个过程。最好在单独一行的对象上调用.pack()
pack()
和grid()
不返回任何内容,因此一旦执行此操作,您将无法在对象上使用其他方法。非常感谢,这正是我想要的!
from tkinter import *
def find_isbn(isbn, lbl):
if len(isbn) == 10:
mult = 11
total = 0
for i in range(len(isbn)):
total += int(isbn[i]) * mult
mult -= 1
digit_11 = 11 - (total % 11)
if digit_11 == 10:
digit_11 = 'X'
isbn += str(digit_11)
lbl.config(text=isbn)
top = Tk()
top.geometry("450x450+500+300")
top.title("Test")
button = Button(top, text="OK", command=lambda: find_isbn(mEntry.get(), mlabel2), fg="red", bg="blue")
button.pack()
label = Label(top, text="Please enter the 10 digit number")
label.pack()
mEntry = Entry(top)
mEntry.pack()
mlabel2 = Label(top, text='')
mlabel2.pack()
top.mainloop()