Ошибка типа: объект 'NoneType' не вызывается в Tkinter - PullRequest
0 голосов
/ 01 мая 2020

Привет, я новичок в tkinter и пробую простой Tkinter GUI, но получаю ошибку:

TypeError: объект 'NoneType' не вызывается

Это мой код:

from tkinter import *
from tkinter import filedialog
import pandas as pd
import pyodbc
from sqlalchemy import create_engine
import urllib

master = Tk()
master.title("Demo GUI")
master.geometry("900x400+150+150")
master.resizable(0,0)

def browse_file():
    global file_path
    global data_frame
    file_path = filedialog.askopenfilename(title = "Choose the file to upload")
    data_frame = pd.read_excel(file_path)

Label = Label(master,text="Choose the file to upload").grid(row=0)

Button = Button(master,text='Browse',command = browse_file).grid(row=0,column=1,pady=4)

Label_1 = Label(master,text="The file selected: "+file_path).grid(row=1,column=0)

master.mainloop()

Я получаю ошибку:

TypeError                                 Traceback (most recent call last)
<ipython-input-29-451372edd65a> in <module>
     25 Button = Button(master,text='Browse',command = browse_file).grid(row=0,column=1,pady=4)
     26 
---> 27 Label1 = Label(master,text="The file Choosen: "+file_path).grid(row=1,column=0)
     28 
     29 

TypeError: 'NoneType' object is not callable

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Объект 'NoneType' не вызывается. Ошибка вызвана размещением объекта там, где он определен. Поэтому вместо

Label_1 = Label(master,text="The file selected: "+file_path).grid(row=1,column=0)

Попробуйте:

Label(master,text="The file selected: "+file_path).grid(row=1,column=0)

Или

Label_1 = Label(master,text="The file selected: "+file_path)
Label_1.grid(row=1,column=0)

Также не используйте Button = Button (master ... скорее дайте уникальное имя к переменной

0 голосов
/ 01 мая 2020

Произошла ошибка: опечатка:

Label = Label(master,text="Choose the file to upload").grid(row=0)

Вы присваиваете результат вызова grid исходному типу tk.Label (Label). обратный вызов gird равен None

Итак, когда вы пытаетесь создать Label1, вы на практике вызываете Label, который теперь None

Просто замените строку на:

 l = Label(master,text="Choose the file to upload")
 l.grid(row=0)

или просто

Label(master,text="Choose the file to upload").grid(row=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...