繁体   English   中英

由于 tclError,使用 tkinter 的 python 程序不会运行

[英]python program using tkinter wont run due to a tclError

我正在尝试学习如何使用tkinter制作 GUI,conde 是相当基本的,但我收到以下错误:

Exception has occurred: TclError
no display name and no $DISPLAY environment variable
  File "/home/josh/Documents/VSC/python/SECOM/mainWindow.py", line 7, in __init__
    self.wind = Tk()
  File "/home/josh/Documents/VSC/python/SECOM/mainWindow.py", line 12, in <module>
    MW = mainWindow()

当我谷歌这样的错误时,只有树莓派或远程服务器和其他东西的答案。 我只是使用 ubuntu(20.04) 并且有一个带有 python (3.8) 的 conda (4.8.3) venv。 我也在使用 VSC 并在 VSC 中使用 venv 作为解释器。 帮助:c

MainWindow.py

from tkinter import ttk
from tkinter import *

class mainWindow:
    def __init__(self):
        self.title = "SECOM"
        self.wind = Tk()
        self.wind.title(self.title)


if __name__ == '__main__':
    MW = mainWindow()
    window.mainloop()

您在代码中谈论了很多关于windows ,但实际上没有多少东西是window 其中一些根本什么都不是。 尝试这个。

import tkinter as tk


class Root(tk.Tk):
    def __init__(self, **kwargs):
        tk.Tk.__init__(self, **kwargs)

        #PUT YOUR APP HERE


if __name__ == '__main__':
    root = Root()
    root.title("SECOM")
    root.mainloop()

这是您的脚本存在的问题

from tkinter import ttk
#importing like this pollutes your namespace
from tkinter import *

class mainWindow:
    def __init__(self):
        #there is no reason to store a reference to the title
        self.title = "SECOM"
        #why are you burying your root in a class property
        self.wind = Tk()
        #this is why you don't need a reference to title
        self.wind.title(self.title)


if __name__ == '__main__':
    #sure
    MW = mainWindow()
    #window? window where? You buried this in MW.wind
    window.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM