_tkinter.TclError: не удалось подключиться к отображению ": 0.0" -> проблема не решена с использованием других исправлений - PullRequest
0 голосов
/ 26 апреля 2020

Проблема, которую я вижу, состоит в том, что 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()


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