Python 调试我的代码

Python 调试我的代码,python,debugging,tkinter,Python,Debugging,Tkinter,我是python新手,正在尝试创建一个显示不同信息的应用程序,如时钟、当前新闻、公告板等 我让时钟工作,但我遇到了一些错误。一个是当应用程序启动时会启动一个较小的窗口。我认为这与初始化中的self.root=tk.tk()有关,但是对这行执行任何操作都会产生错误 另一个缺陷是,当背景图像(0.png)与我的显示器大小相同时,用来填充整个屏幕时,当我将时钟添加到应用程序时,图像会移动到屏幕的右下角,在屏幕的左上角留下一条小白线。我试图通过弄乱面板来修复此问题。pack将其更改为网格和放置,但这两种

我是python新手,正在尝试创建一个显示不同信息的应用程序,如时钟、当前新闻、公告板等

我让时钟工作,但我遇到了一些错误。一个是当应用程序启动时会启动一个较小的窗口。我认为这与初始化中的
self.root=tk.tk()
有关,但是对这行执行任何操作都会产生错误

另一个缺陷是,当背景图像(
0.png
)与我的显示器大小相同时,用来填充整个屏幕时,当我将时钟添加到应用程序时,图像会移动到屏幕的右下角,在屏幕的左上角留下一条小白线。我试图通过弄乱
面板来修复此问题。pack
将其更改为
网格
放置
,但这两种操作对线路没有任何影响。我觉得有什么东西在覆盖这行

这些bug都没有出现在控制台中,我不知道该怎么办。以下是我正在运行的代码:

from tkinter import *
from PIL import ImageTk, Image
import os
import time
import tkinter as tk
class App(Tk):
    def __init__(self):
        self.root = tk.Tk()
        self.label = tk.Label(text="",font=('comic',50,'bold'),bg = '#464545',fg = '#1681BE')
        self.label.place(height = 206,width = 487, x = 1384, y = 824)       
        self.update_clock()
        self.root.mainloop()

    def update_clock(self):
       now = time.strftime('%H:%M:%S')
       self.label.configure(text=now)

       self.root.after(1000, self.update_clock)


root = Tk()
img = ImageTk.PhotoImage(Image.open("0.png"))
panel = Label(root, image = img)
panel.pack()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.overrideredirect(1)
app = App()
root.geometry("%dx%d+0+0" % (w, h))
root.mainloop()

我希望有人能找到它的毛病,因为我当然不能

由于您的
应用程序
类继承自
Tk
,因此无需创建另一个根窗口。因此,我收集了
应用程序
类中的所有代码。当我使用屏幕侧面的图像时,我在屏幕的顶部或左侧看不到任何线条,因此我希望它也适用于您

from PIL import ImageTk, Image
import os
import time
import tkinter as tk

class App(tk.Tk):
    def __init__(self):
        # call the __init__ method of Tk class to create the main window
        tk.Tk.__init__(self) 
        # background image
        img = ImageTk.PhotoImage(Image.open("0.png"))
        panel = Label(self, image=img)
        panel.pack()
        # clock
        self.label = tk.Label(self, text="", font=('comic',50,'bold'),
                              bg='#464545', fg='#1681BE')
        self.label.place(height=206, width=487, x=1384, y=824)       
        self.update_clock()
        # window geometry
        w, h = self.winfo_screenwidth(), self.winfo_screenheight()
        self.geometry("%dx%d+0+0" % (w, h))

        self.overrideredirect(True)
        self.mainloop()

    def update_clock(self):
        now = time.strftime('%H:%M:%S')
        self.label.configure(text=now)
        self.after(1000, self.update_clock)

app = App()

什么虫子?什么错误?始终对完整错误消息(回溯)提出疑问。不要期望我们会运行您的代码。许多问题只能通过读取(完整)错误消息来解决。
tkinter
只能有一个
tk.tk()
窗口-如果需要第二个窗口,请使用
tk.Toplevel()
tkinter
需要一个
mainloop()
-它是程序“引擎”(就像在车里一样-它只需要一个引擎-不管你开了多少人)-如果你有更多的mainloop,那么变量/小部件中的值就有问题。你可以添加屏幕截图来显示问题。并在问题中添加您使用的系统以及如何运行它的信息-在控制台中手动,在空闲状态下,单击图标。