TypeError: объект 'Entry' не может быть интерпретирован как целое число - PullRequest
0 голосов
/ 17 ноября 2018
from tkinter import ttk, simpledialog
import tkinter as tk
from tkinter import *

root = Tk()
root.resizable(0, 0)
root.title("Sorting and Searching Algorithm")
root.configure(bg='#ff8080')
root.geometry("750x550")

def arrays():
    v = IntVar()
    for widget in root.winfo_children():
        widget.destroy()
    def close():
        for widget in root.winfo_children():
            widget.destroy()
        arrays()

    titleFrame = Frame(root)
    titleFrame.grid(row=0)

    radioFrame = Frame(root)
    radioFrame.grid(padx=350, pady=100)

    inputFrame = tk.Frame(root, bg='#ff8080')
    inputFrame.grid()

    buttonFrame = Frame(root)
    buttonFrame.grid()

    Title = tk.Label(titleFrame, bg='#ff8080', text="Enter The Number of Elements In The Array", font="-weight bold")
    Title.grid()

    global NUMBER_OF_ENTRIES
    NUMBER_OF_ENTRIES = Entry(inputFrame)
    NUMBER_OF_ENTRIES.grid(row=0, column=1, sticky=E, ipadx=10, ipady=10,padx=10, pady=10)

    if NUMBER_OF_ENTRIES == int:
        print("Working")
    else:
        print("Please Enter a Integer Value")

    global num
    num = 0

    #global NUMBER_OF_ENTRIES
    #NUMBER_OF_ENTRIES = simpledialog.askinteger("Please Enter", "Enter The Number of Elements In The Array")

    global alist
    alist = []

    for i in range (0, NUMBER_OF_ENTRIES):
        num = simpledialog.askinteger("Please Enter" ,"Enter The Entries In Array Element " + str(i))
        alist = alist + [ num ]

    calculate = ttk.Button(buttonFrame, text="Proceed", command=entries)
    calculate.grid(row=4, column=0, sticky=E + S, ipadx=10, ipady=10)

arrays()
root.mainloop()

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

Но у меня возникает проблема, когда я пытаюсь ее скомпилировать.

1 Ответ

0 голосов
/ 20 ноября 2018

Потому что это не целое число.NUMBER_OF_ENTRIES имеет тип <class 'tkinter.Entry'>.

Обычный способ сделать это - связать запись с StringVar(), который будет отражать то, что введено в запись.

Текст, введенный в запись, все еще является текстом, поэтому вам придется преобразовать его в int явно.

См. Виджет входа в Tkinter .

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