У меня проблема с кодом python 3.8.5's GUI - PullRequest
0 голосов
/ 05 августа 2020

хорошо, проблема в том, что я следил за учебником от кого-то по имени "Dev Ed", и я сделал gui с TKinter после того, как на полпути к руководству я получил эту ошибку "Произошло исключение: NameError name 'filename' не определено "вот мой код

import tkinter as tk
from tkinter import filedialog, Text
import os 

root = tk.Tk()
apps = []

def addApp():
    filename = filedialog.askopenfilename(initialdir="/", title="Select File",
    filetypes=(("executables","*.exe"), ("all files", "*.*")))

apps.append(filename)
print(filenme)
for app in apps:
    label = tk.Label(frame, text=app, bg="gray")
    label.pack()

canvas = tk.Canvas(root, height=700, width=700, bg="#163542")
canvas.pack()

frame = tk.Frame(root, bg="green")
frame.place(relwidth=0.3, relheight=0.3, relx=0.35, rely=0.35)

openFile = tk.Button(root, text="Open File", padx=10,
pady=5, fg="white", bg="#163542" ,command=addApp)

openFile.pack()

runApps = tk.Button(root, text="Run Apps", padx=10,
pady=5)

runApps.pack()

root.mainloop()

ошибка произошла в строке 12 или 13

Ответы [ 2 ]

0 голосов
/ 06 августа 2020
import tkinter as tk
 from tkinter import filedialog, Text
import os 

  root = tk.Tk()
apps = []
 def addApp():

for widget in frame.winfo_children():
    widget.destroy()
filename = filedialog.askopenfilename(initialdir="/", title="Select File",
filetypes=(("executables","*.exe"), ("all files", "*.*")))
apps.append(filename)
print(filename)
for app in apps:
    label = tk.Label(frame, text=app, bg="gray")
    label.pack()


    def runApps():
        for app in apps:
            os.startfile(app)




  canvas = tk.Canvas(root, height=700, width=700, bg="#163542")
  canvas.pack()

  frame = tk.Frame(root, bg="green")
   frame.place(relwidth=0.4, relheight=0.4, relx=0.3, rely=0.25)

openFile = tk.Button(root, text="Open File", padx=10,
pady=5, fg="white", bg="#163542" ,command=addApp)

openFile.pack()

runApps = tk.Button(root, text="Run Apps", padx=10,
pady=5 , fg="white", bg="#163542" , command = runApps)

runApps.pack()

root.mainloop()

это мой новый код ShanyeLoyd

0 голосов
/ 05 августа 2020

Пробелы очень важны в python. В вашей функции addApp() переменная filename существует, но в глобальном пространстве, в котором находился apps.append(filename), она не могла ее найти.

import tkinter as tk
from tkinter import filedialog, Text
import os

root = tk.Tk()
apps = []

def addApp():
    filename = filedialog.askopenfilename(initialdir="/", title="Select File",
    filetypes=(("executables","*.exe"), ("all files", "*.*")))
    apps.append(filename)  # This appears to have been in the wrong spot.
    print(filename)
    for app in apps:
        label = tk.Label(frame, text=app, bg="gray")
        label.pack()

canvas = tk.Canvas(root, height=700, width=700, bg="#163542")
canvas.pack()

frame = tk.Frame(root, bg="green")
frame.place(relwidth=0.3, relheight=0.3, relx=0.35, rely=0.35)

openFile = tk.Button(root, text="Open File", padx=10,
pady=5, fg="white", bg="#163542" ,command=addApp)

openFile.pack()

runApps = tk.Button(root, text="Run Apps", padx=10,
pady=5)

runApps.pack()

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