Python Tkinter - Ошибка с виджетами - TclError: ожидаемое целое число, но полученное «Новое» - PullRequest
0 голосов
/ 09 ноября 2019

Я следую базовому учебнику по Tkinter, и я почти точно следовал ему, но также использовал свои минимальные знания Tkinter. Тем не менее, каждый раз, когда я запускаю его, я получаю сообщение об ошибке, но только с виджетами.

Сообщение об ошибке:

self.tk.call(_tkinter.TclError: expected integer but got "New"

Согласно сообщению об ошибке, это когда я присваиваю Label(head) lbl_logo on line 46.

Поскольку я делаю это в колледже, я должен следовать учебному пособию, поэтому некоторые из них могут быть сокращены, например: использование .config

# Libraries
from tkinter import *



# generates password
class password_generator:


    def __init__(self):
        pass



# Window
class window():


    def __init__(self):

        # initial setup
        self.title('Safe G - The Password Generator')
        self.geometry('1600x900+100+100') # width (w), height (h), x-start-position (x), y-start-position (y)
        self.configure(bg='gray20')
        self.iconbitmap('safeg_icon.ico')

        # initial defaults
        self.option_add('*Font', 'Courier New')
        self.option_add('*Background', 'gray20')
        self.option_add('*Label.Font', 'Courier New')

        # constructs header
        head = Frame(self, highlightthickness=5, highlightbackground='tomato2')
        head.pack(fill='both', expand=True)

        # HEADER - logo
        img = PhotoImage(file='file.gif') # isn't actually called file.gif, but is a .gif file
        lbl_logo = Label(head)
        lbl_logo.config(image = img)
        lbl_logo.image = img
        lbl_logo.pack(side=LEFT, padx=10, pady=10)

        # HEADER - title
        lbl_title = Label(head)
        lbl_title.config(text='Safe G - The Password Generator', font=('Courier New 20'))
        lbl_title.pack(side=LEFT, padx=10, pady=10)

        # constructs main body
        body = Frame(self, highlightthickness=5, highlightbackground='orange2')
        body.pack(fill='both', expand=True)

        # constructs footer
        foot = Frame(self, highlightthickness=5, highlightbackground='gold')
        foot.pack(fill='both', expand=True)


# Initalises program
if __name__ == '__main__':
    win = Tk()
    window.__init__(win)
    win.mainloop()

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

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