Python Anwendung

Du hast eine Idee für ein Projekt?
Kanaax
User
Beiträge: 17
Registriert: Mittwoch 5. August 2020, 09:15

Donnerstag 1. Oktober 2020, 14:00

Die Kommentare sind auch nur für mich als Hilfe gedacht damit ich verstehe, was da überhaupt passiert. Die Striche sind ebenfalls nur für mich gedacht als kleine Hilfe.
Mit den Import weiss ich schon und werde ich auch sobald ich wieder im Büro bin ändern.
Das man alles klein schreibt habe ich auch "erfahren" als es zu spät war und dementsprechend habe ich es so weiter geführt(der Code ist nur zum tkinter lernen und verstehen gedacht).
Die Abkürzungen verstehe ich und das reicht ja erstmal daher auch solche bennungen(Vk_Art= Verkaufte Artikel)
Sirius3
User
Beiträge: 13054
Registriert: Sonntag 21. Oktober 2012, 17:20

Donnerstag 1. Oktober 2020, 14:17

@Kanaax: heute verstehst Du die Abkürzungen vielleicht noch, nächste Woche nicht mehr.
Kanaax
User
Beiträge: 17
Registriert: Mittwoch 5. August 2020, 09:15

Donnerstag 1. Oktober 2020, 15:15

Sorry ich musste los, aber ich antworte mal weiter.
Die "versteigerungs_Li" ist die Liste und "Window2" hat die 2 damit ich für mich weiss das es sozusagen das 2. Fenster ist(nur für mein Verständnis).
Ok das wusste ich nicht und werde ich ab sofort beachten.
Die Buchstaben habe ich auch nur verwendet, da ich weiss das ich sie nur eine Zeile weiter drunter brauche und somit immer genau weiss wofür sie sind.
Das "L" habe ich so aus ein Tutorial übernommen, ich war einfach froh das es entlich geklappt hat und ist im Endeffekt unnötig.
Ok das mit den Stringrepräsentation in einer Liste wusste ich auch nicht und werde ich in Zukunft lassen.
Das mit den Dateien öffnen werde ich in Zukunft auch ändern.
Ja wie gesagt ich wollte erstmal die Grundlagen lernen und somit gucken wie "tkinter" funktioniert.

Ich sehe schon das ich noch einiges im richtigen Programm um ändern muss, wobei ich dann auch OOP möchte.
Vieles habe ich einfach falsch gelernt und weiss es jetzt besser dank der Community hier(hauptsächlich durch dich).

So jetzt zu der neuen Nachricht. Ich habe mir zu allen Abkürzungen Notizen gemacht damit ich immer weiss was die Bedeuten. Klar ist es nicht schön und sollte anders gemacht werden aber es ist immer noch zum lernen von tkinter und um mein Wissen rund um Python zu vertiefen. Ich werde morgen denke ich mal anfangen, das Programm neu zu schreiben und diesesmal berücksichtige ich eure Ratschläge.
Kanaax
User
Beiträge: 17
Registriert: Mittwoch 5. August 2020, 09:15

Montag 5. Oktober 2020, 07:59

Code: Alles auswählen

from tkinter import *
import tkinter as tk
from tkinter import messagebox 
import tkinter.ttk as ttk
import sys

#---------------------------------------------------------------------------------------------------------------------
#Liste zum Speichern
neue_artikel = []

#---------------------------------------------------------------------------------------------------------------------
#Fenster layout
root = Tk()
root.title(" Auktionshaus xyz " + "    " + " Artikel einpflegen ")
root.geometry("900x500")

#Icon oben Links 
root.iconbitmap("HOMEME2.png")

#Bild anlegen und positionieren
image1 = PhotoImage(file="HOMEME2.png")
panel1 = Label(root, image = image1)
panel1.grid(row=0, column=5, columnspan=2, rowspan=2, sticky= E + N, padx=3, pady=3)     

#----------------------------------------------------------------------------------------------------------------------
#Funktionen
#Neues fenster für Verkaufte Artikel
def verkaufte_artikel_liste():
    verkaufte_art_window = tk.Toplevel()
    #Layout
    labelExample = tk.Label(verkaufte_art_window, text = " Verkaufte Artikel ")
    verkaufte_art_window.title("Auktionshaus xyz" + "    " + " Verkaufte Artikel ")
    verkaufte_art_window.geometry("720x720")
    panel2 = Label(verkaufte_art_window, image = image1)
    panel2.grid(row=0, column=3, columnspan=2, rowspan=2, sticky= E + N, padx=3, pady=3)

#Neues fenster für Versteigerungs Liste
def versteigerungs_liste():
    versteigerungs_liste_window = tk.Toplevel(root)
    labelExample = tk.Label(versteigerungs_liste_window, text = " Versteigerungsliste ")
    versteigerungs_liste_window.title("Auktionshaus xyz" + "    " + " Versteigerungsliste ")
    versteigerungs_liste_window.geometry("1000x500")
    panel3 = Label(versteigerungs_liste_window, image = image1)
    panel3.grid(row=0, column=3, columnspan=2, rowspan=2, sticky= E + N, padx=3, pady=3)
    Test1 = tk.Listbox(versteigerungs_liste_window, width = 250)
    Test1.insert("end", *neue_artikel)
    Test1.grid()


#Neues fenster für Aktuelle Versteigerung
def versteigerung():
    versteigerung_window = tk.Toplevel()
    labelExample = tk.Label(  versteigerung_window, text = " Aktuelle Versteigerung ")
    versteigerung_window.title("Auktionshaus xyz" + "    " + " Aktuelle Versteigerung ")
    versteigerung_window.geometry("720x720")
    panel4 = Label(versteigerung_window, image = image1)
    panel4.grid(row=0, column=3, columnspan=2, rowspan=2, sticky= E + N, padx=3, pady=3)

#Neues fenster für Unter Vorbehalt Liste
def unter_vorbehalt():
    unter_vorbehalt_window = tk.Toplevel()
    labelExample = tk.Label(unter_vorbehalt_window, text = " Unter Vorbehalt ")
    unter_vorbehalt_window.title("Auktionshaus xyz" + "    " + " Unter Vorbehalt ")
    unter_vorbehalt_window.geometry("720x720")
    panel5 = Label(unter_vorbehalt_window, image = image1)
    panel5.grid(row=0, column=3, columnspan=2, rowspan=2, sticky= E + N, padx=3, pady=3)

#Neues fenster für nicht Verkaufte Artikel
def nicht_verkaufte_artikel():
    nicht_verkaufte_artikel_window = tk.Toplevel()
    labelExample = tk.Label(nicht_verkaufte_artikel_window, text = " Nicht Verkaufte Artikel ")
    nicht_verkaufte_artikel_window.title("Auktionshaus xyz" + "    " + " Nicht Verkaufte Artikel ")
    nicht_verkaufte_artikel_window.geometry("720x720")
    panel6 = Label(nicht_verkaufte_artikel_window, image = image1)
    panel6.grid(row=0, column=3, columnspan=2, rowspan=2, sticky= E + N, padx=3, pady=3)

#Exit Fenster 
def button_abbruch():
    result = tk.messagebox.askyesno("Warnung!",
        "Soll das Programm wirklich geschlossen werden?")
    if result:
        root.destroy()

#Speichern
def getInput():
    button_speichern.bind("<Enter-Keypress-1>")
    result1 = tk.messagebox.askyesno("Speichern",
        "Möchten sie die Daten wirklich Speichern?")
    if result1 == True:
        a = artikelnummer.get()
        b = menge.get()
        c = artikel_beschreibung.get()
        d = mindest_preis.get()
        e = bieter_ident.get()
        f = schriftliches_gebot.get()
        artikel_liste = ["Artikel Nummer: ", a, "Menge: ", b, "Artikel Beschreibung: ", c, "Mindestpreis: ", d, "Bieternummer oder Bietername:", e, "Höhe des Gebots:", f]
        neue_artikel.append(artikel_liste)
        L = [neue_artikel]
        datei = open ('eins.txt', "w")
        datei.write(', '.join((map(str, L))))
        datei.close()
        print (L)

#---------------------------------------------------------------------------------------------------------------------
#Menue 1
menu = Menu()
root.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label="Menü", menu=filemenu)

filemenu.add_command(label="Unter Vorbehalt Liste", command=unter_vorbehalt) 
filemenu.add_command(label="Versteigerungsliste", command=versteigerungs_liste)
filemenu.add_command(label="Aktuelle Versteigerung", command=versteigerung)
filemenu.add_command(label="Verkaufte Artikel", command=verkaufte_artikel_liste)
filemenu.add_command(label="Nicht Verkaufte Artikel", command=nicht_verkaufte_artikel)

#-------------------------------------------------------------------------------------------------------------------------------------------
artikelnummer = tk.StringVar(root)
menge = tk.StringVar(root)
artikel_beschreibung = tk.StringVar(root)
mindest_preis = tk.StringVar(root)
schriftliches_gebot = tk.StringVar(root)
bieter_ident = tk.StringVar(root)


tk.Label(root, text="Artikelnummer:").grid(row=1, column=0)
tk.Entry(root, textvariable=artikelnummer, bd=5, width=40).grid(row=1, column=1)

tk.Label(root, text="Menge:").grid(row=2, column=0)
tk.Entry(root, textvariable=menge, bd=5, width=40).grid(row=2, column=1)

tk.Label(root, text="Artikelbeschreibung:").grid(row=3, column=0)
tk.Entry(root, textvariable=artikel_beschreibung, bd=5, width=40).grid(row=3, column=1)

tk.Label(root, text="Mindestpreis").grid(row=4, column=0)
tk.Entry(root, textvariable=mindest_preis, bd=5, width=40).grid(row=4, column=1)

tk.Label(root, text="Höhe des Gebot").grid(row=6, column=0)
tk.Entry(root, textvariable=schriftliches_gebot, bd=5, width=40).grid(row=6, column=1)

tk.Label(root, text="Bietername oder Nummer:").grid(row=7, column=0)
tk.Entry(root, textvariable=bieter_ident, bd=5, width=40).grid(row=7, column=1)
 
#------------------------------------------------------------------------------------------------------------------------------------------------
#Buttons
button_speichern = Button(root, text="Speichern", bg="#DF5651", command = getInput)
button_speichern.grid(row=8, column=2, padx=60, pady=0)

button_abbruch_layout = Button(master=root, text="Beenden", bg="#DF5651", command=button_abbruch)
button_abbruch_layout.grid(row=8, column=1, padx=60, pady=10)



root.mainloop()
Ich habe meinen Code mal etwas angepasst. Den * import, die Kommentare und das L ändere ich als nächstes.
Antworten