按下按钮显示标签-标签重叠



在我的整个项目中,我运行的代码与下面的代码非常相似。我正试图在一个按钮按下显示一些文本。在我的整个项目中,当我点击按钮时,新文本呈现,但它与旧文本重叠,而不是删除旧文本然后呈现新文本。

我如何显示和更新文本自由重叠的按钮按下?

我的代码在EDIT ->jokeTextBox。配置未定义

class Joke(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent, background="#3a4466")
jokeTextBox = ttk.Label(self, background="red", foreground="white", )
jokeTextBox.place(x=250, y=150)

def jokeMode(self):
global jokeCount
text = aJokeFunction()
jokeTextBox.config(text=text,bg="red", fg="white")

如何在按下按钮时显示和更新没有重叠的文本?

创建按钮后创建一个空标签,然后在jokeMode()函数中仅config标签的文本。


joke = Button(text="Joke", command=jokeMode(), background='pink')

这一行将只调用函数jokeMode()一次。因此,使用command=jokeMode代替。

完整的解决方案如下:

.
.
.
def jokeMode():
text = aJokeFunction()
#configure the label with new text and other attributes like bg, fg
jokeTextBox.config(text=text,bg="red", fg="white")

joke = Button(text="Joke", command=jokeMode, background='pink') #use command=jokeMode instead of command=jokeMode()
joke.place(x=75, y=50)
#create an empty label for joke here 
jokeTextBox = Label(ws)
jokeTextBox.place(x=25, y=150)
ws.mainloop()

如果使用OOP:

class Joke():
def __init__(self, parent):
self.myFrame = Frame(parent, background="#3a4466")
self.myFrame.place(x=75, y=150)
self.jokeTextBox = Label()
self.jokeTextBox.place(x=250, y=150)

def jokeMode(self):
text = aJokeFunction()
self.jokeTextBox.config(text=text,bg="red", fg="white")

jokeFrame = Joke(ws)
joke = Button(text="Joke", command=jokeFrame.jokeMode, background='pink')
joke.place(x=75, y=50)
ws.mainloop()

相关内容

  • 没有找到相关文章

最新更新