Ich arbeite derzeit an einer Zuweisung, die besagt, dass ich eine GUI mit Tkinter erstellen muss, die Zeichenfolgen aus einer Textdatei lädt und in einem Textfeld anzeigt. Die Anweisungen geben auch an, dass Klassen verwendet werden müssen. Ich bin neu in der Programmierung, ich bin mir nicht sicher, wie das alles funktioniert. Meine aktuelle Textdatei sieht wie folgt aus:Klassen/Attribute in Python
(Artikel Identität #, Menge, Artikel, Ort, Farbe)
(23871243, 20, Isoliert, Kalifornien, Weiß)
(94938443, 10 , Socken, Kanada, Schwarz)
ich nach den Anforderungen, muss jede Zeile ein individuelles Objekt, mit Attributen wie Menge sein, Standort usw. ich bin mit der GUI-Komponente in Ordnung, aber das Hauptproblem Ich sage Python, dass jede Zeile in t Die Textdatei ist ein separates Objekt mit bestimmten Attributen.
Die 'OpenFile' Funktion ist wahrscheinlich, wo das Problem ist. Ab sofort gibt es eine Liste von Strings zurück, aber ich möchte, dass es ein Objekt mit 5 Attributen zurückgibt (wie oben in der Textdatei aufgelistet). Jede Hilfe würde sehr geschätzt werden.
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()
Nachdem Sie die Datei gelesen und analysiert haben, rufen Sie einfach die Klasse 'Item' mit den neu empfangenen Informationen auf. – MooingRawr
müssen Sie angeben, dass jede Zeile vom Typ Item ist – WhatsThePoint