2
我目前正在處理一項任務,指出我必須使用Tkinter構建GUI,它將從文本文件加載字符串並將它們顯示在文本框中。說明還指出,必須利用課程。作爲編程新手,我不確定這是如何實現的。我現在的文本文件看起來像這樣:Python中的類/屬性
(項目標識#,數量,項目,位置,顏色)
(23871243,20,遠程,加利福尼亞州,白)
(94938443,10 ,襪子,加拿大,黑色)
根據要求,每條線必須是一個單獨的對象,具有 屬性,如數量,位置等 我很好,與GUI組件,但主要問題我正在告訴Python,每一行都在t中他的文本文件是一個單獨的對象,具有某些屬性。
'OpenFile'函數可能出現問題。現在它返回一個字符串列表,但我希望它返回一個具有5個屬性的對象(如上面所列,在文本文件中)。 任何幫助將不勝感激。
from tkinter import *
from tkinter import ttk
from tkinter import font
from tkinter.filedialog import askopenfile
class Manager:
def __init__(self, root):
#The frame for the GUI itself
mainframe = ttk.Frame(root, relief=SUNKEN, padding="3 10 12 12")
mainframe.grid(column=0, row=0, columnspan=10, rowspan=10, sticky="NW")
button_load= ttk.Button(mainframe, text="Load",command=self.OpenFile)
button_load.grid(row=35, column=17, sticky = "NE", padx=5, pady=10)
global text_identity
text_identity = Text(mainframe, width = 15, height = 2)
text_identity.grid(column=8, row=5, sticky=(N,W))
def OpenFile(self):
listing=[]
name = askopenfile(mode='r',initialdir="D:/Documents",
filetypes =(("Text File", "*.txt"),("All Files","*.*")),
title = "Choose a file.")
with name as rd:
global items
items=rd.readlines()
one=[x.strip('\n') for x in items]
return one
class Items:
identity=''
num=''
name = ''
location = ''
other = ''
def __init__(self,identity,num,name,location,other):
self.identity = identity
self.num = num
self.name = name
self.location = location
self.other = other
def main():
root = Tk()
Manager(root)
root.title("Data Management")
root.mainloop()
if __name__ == main():
main()
閱讀並解析文件後,只需使用新收到的信息調用Item項即可。 – MooingRawr
你將不得不指定每行是'Item'類型 – WhatsThePoint