我不知道为什么,但是在每一个应该显示字符串的地方,我用PY_VAR代替(#是一个数字)。 例如,它不显示“此区域显示来自从属服务器的消息”,而是显示PY_VAR1。 我的代码是
#!/usr/bin/python
# -*- coding: utf-8 -*-
import tkinter
class Display(tkinter.Tk):
def __init__(self,parent):
tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
self.MessageString = tkinter.StringVar()
MessageDisplay = tkinter.Label(self, text = self.MessageString, anchor = 'nw' , justify = 'left')
MessageDisplay.grid(columnspan = 3)
self.ClockString = tkinter.StringVar()
ClockDisplay = tkinter.Label(self, text = self.ClockString)
ClockDisplay.grid(row=0)
self.Menu1Title = tkinter.StringVar()
Menu1Button = tkinter.Button(self, text = self.Menu1Title, command = self.SetMenu(MenuIndex = 1))
Menu1Button.grid(column = 0, columnspan = 2)
self.Menu2Title = tkinter.StringVar()
Menu2Button = tkinter.Button(self, text = self.Menu2Title, command = self.SetMenu(MenuIndex = 2))
Menu2Button.grid(column = 0, columnspan = 2)
self.Menu3Title = tkinter.StringVar()
Menu3Button = tkinter.Button(self, text = self.Menu3Title, command = self.SetMenu(MenuIndex = 3))
Menu3Button.grid(column = 0, columnspan = 2)
self.MenuDescriptionContent = tkinter.StringVar()
MenuDescription = tkinter.Label(self, text = self.MenuDescriptionContent, anchor = 'nw', justify = 'left')
MenuDescription.grid(column = 2, columnspan = 2, row = 1, rowspan = 3)
"""Temporary variables"""
self.MessageString = "This area shows messages coming from the slave"
self.ClockString = "00:00"
self.Menu1Title = "Menu 1"
self.Menu2Title = "Menu 2"
self.Menu3Title = "Menu 3"
self.MenuDescriptionContent = "This area shows the description of the selected menu"
def SetMenu(self, MenuIndex):
pass
if __name__ == "__main__":
app = Display(None)
app.title('Web Bell')
app.mainloop()
控制台中没有显示任何错误。 提前感谢您的回复
如果需要StringVar的值,则必须使用
get
方法:只有在使用StringVar作为
textvariable
属性的值时,才不需要这样做。在你的代码有另一个问题。当你
self.MessageString = "This area..."
你没有设置文本变量时,你实际上是在扔掉它并改变self.MessageString
来引用一个字符串。在相反,您需要调用变量的set方法,如下所示:
^{pr2}$相关问题 更多 >
编程相关推荐