我想学点知识。我在Youtube上跟随了一些指南,觉得自己对基础知识有了很好的理解。但是,现在我正试图编写一个可以作为quicklog的脚本,但是在从entry/text/optionmenu获取文本时遇到了一些问题。在
如果我在类外设置gui,我可以简单地变量.get()一切都是鸭子。但是当我在一个类中使用gui-tkinter时,我会得到一个未定义的异常。在
这是我的密码。问题出在def saveButtonCommand(self)中:
如何获取noteText和officeOption/Var的值?在
# Imports
from tkinter import *
from tkinter import messagebox
import sys, datetime
class Window(Frame):
def __init__(self, master = None):
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self):
self.master.title("SPL - " + str(datetime.date.today()))
self.configure(background="#e7e7e7")
self.pack(fill=BOTH, expand=1)
# Menu -> Quit, Open Log
menu = Menu(self.master)
self.master.config(menu=menu)
file = Menu(menu)
file.add_command(label="Open Log")
file.add_command(label="Quit", command=self.client_exit)
menu.add_cascade(label="File", menu=file)
# Window Items
# Office Drop Down
OFFICES = [
"County Building",
"Adult Probation",
"Building & Zoning",
"Circuit Court",
" - CC. Family Division",
" - CC. Friend of the Court",
" - CC. Juvenile Division",
"Clerk",
"Commissioners",
"Computer Infomration Systems",
"Corporation Counsel",
"District Court",
" - DC. Community Corrections",
" - DC. Magistrate Office",
" - DC. Probation Office",
"Economic Development Corp.",
"Equalization",
"Maintenance",
"Probate Court",
"Prosecuting Attorney",
"Public Guardian",
"Register of Deeds",
"Sheriff Department",
" - SD. Booking",
" - SD. Kitchen",
" - SD. Records",
" - SD. Squadroom",
"Social Security",
"Tax Mapping/GIS",
"Treasurer",
"Veteran's"
]
officeLabel = Label(self, text="Office:", fg="#000000", bg="#e7e7e7", font="Verdana 10")
officeLabel.place(x=5,y=5)
officeOptionVar = StringVar()
officeOptionVar.set(OFFICES[0]) # Default Value
officeOption = OptionMenu(self, officeOptionVar, *OFFICES)
officeOption.place(x=5,y=28,width=310)
# Note
noteLabel = Label(self, text="Note:", fg="#000000", bg="#e7e7e7", font="Verdana 10")
noteLabel.place(x=5,y=58)
noteText = Text()
noteText.place(x=5, y=81, width=310, height=225)
# Save Button
saveButton = Button(self, text='Save', command=self.saveButtonCommand)
saveButton.place(x=5, y=312, width=310, height=50)
def client_exit(self):
exit()
def saveButtonCommand(self):
office = officeOptionVar.get()
note = noteText.get("1.0","end-1c")
messagebox.showinfo(title="Test", message=note)
root = Tk()
root.resizable(0,0)
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
geo_width = 320
geo_height = 370
geo_offset_w = int((screen_width/2)-(geo_width/2))
root.geometry(str(geo_width) + "x" + str(geo_height) + "+" + str(geo_offset_w) + "+200")
app = Window(root)
root.mainloop()
我修正了它,你应该用self.“variable name”来声明一个可访问的属性。在
相关问题 更多 >
编程相关推荐