Проблема, которую я вижу, состоит в том, что Tcl не открывается для отображения. Попробовав некоторые исправления, которые я вижу в переполнении стека и в сообществе Repl.it, я не добился успеха. Нужны советы, которые помогут решить.
В отдельном примере я вычеркнул некоторые URL-адреса, чтобы упростить работу с ними, например, 1 URL, 1 набор данных для переноса на GUI .
Однако прохождение не дало никаких указаний к решению.
Буду очень признателен за любые советы по дальнейшему расследованию.
import os
if os.environ.get('DISPLAY','') == '':
print('no display found. Using :0.0')
os.environ.__setitem__('DISPLAY', ':0.0')
import tkinter as tk # python 3
class Example(tk.Frame):
def __init__(self, root):
tk.Frame.__init__(self, root)
self.frame = tk.Frame(self, background="#ffffff")
self.frame.grid(row = 0, column = 0, sticky = 'n')
self.canvas = tk.Canvas(root, borderwidth=5, background="#ffffff", width = 400, height = 400)
self.canvas.grid(row=0, column =1)
x = os.listdir()
print(x)
self.canvas.bind("<Configure>", self.onFrameConfigure)
self.populate()
def populate(self):
try:
#first limit the number of entries in the output list
n = 3
names = ["brick", "drill", "2x4", "shovel", "glue", "paint", "lock", "insulation"]
prices = ["£0.3", "£34", "£4", "£12", "1", "13", "8", "22"]
r = len(names)
for i in range(r):
tk.Label(self.canvas, text= (names[i]), width=3, borderwidth="1",
relief="solid").grid(row=i, column=0)
t= prices[i]
tk.Label(self.canvas, text=t).grid(row=i, column=1)
except:
return_print = "there was a problem handling your request"
return return_print
def onFrameConfigure(self, event):
'''Reset the scroll region to encompass the canvas'''
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
if __name__ == "__main__":
root=tk.Tk()
Example(root).grid(row = 0, column = 0)
#Example(root).pack(side="top", fill="both", expand=True)
root.mainloop()