【发布时间】:2017-09-08 18:46:11
【问题描述】:
我创建了一个菜单栏和一个文本框,我希望在文本框中显示属于在菜单中所做选择的变量中的信息。
但我不知道怎么做。
这是我通过网络上的不同指南整理出来的。我对 python 很陌生,我仍然在为对象和类的概念而苦苦挣扎,所以任何帮助都会得到很大的帮助。
from tkinter import Tk, Frame, Menu
from tkinter import *
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.master.title("syntax explenation for shopfloor")
menubar = Menu(self.master)
self.master.config(menu=menubar)
syntaxMenu = Menu(menubar, tearoff=False)
submenu = Menu(syntaxMenu)
syntaxMenu.add_cascade(label='Math', menu=submenu, underline=0)
submenu.add_command(label="abs()", command=self.onSyntaxabs)
submenu.add_command(label="cos()", command=self.onSyntaxcos)
submenu.add_command(label="sin()", command=self.onSyntaxsin)
submenu.add_cascade(label="log()", command=self.onSyntaxlog)
submenu = Menu(syntaxMenu)
syntaxMenu.add_cascade(label='Inqurie', menu=submenu, underline=0)
submenu.add_command(label="inqiureText()", command=self.onSyntaxinquire)
menubar.add_cascade(label="Syntax", underline=0, menu=syntaxMenu)
def onSyntaxabs():
info="Convert to absolute value, abs(-10) will respond with 10."
def onSyntaxcos():
info="Returns cosinus value in decimal degrees"
def onSyntaxcos():
info="Returns cosinus value in decimal degrees"
def onSyntaxlog():
info="Returns the natural logarithm"
def onSyntaxinquire():
info="Creates a pop-up box that you can enter text in."
def main():
root = Tk()
root.geometry("500x600")
app = Example()
S = Scrollbar(root)
T = Text(root, height=20, width=60, bg="lightblue")
S.pack(side=RIGHT, fill=Y)
T.pack(side=LEFT, fill=BOTH)
T.pack(side=RIGHT, fill=BOTH)
S.config(command=T.yview)
T.config(yscrollcommand=S.set)
info=?
T.insert(END, info)
mainloop( )
if __name__ == '__main__':
main()
【问题讨论】:
-
你的代码有很多问题。你需要修正你的缩进。您无缘无故地从 tkinter 导入了两次。
info=?不是一个有效的陈述我想你的意思是info="?"。您已经定义了两次def onSyntaxcos():,依此类推。 -
您可能会受益于使用可以为您检查错误的良好 IDE,这样您就可以避免缩进和缺少引号等简单问题。也许像 Eclipse 或 Py Charm。
标签: python variables tkinter menubar