Widgetsposition verändert sich bei jedem Klick auf dem Button

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Code: Alles auswählen

########### Eigene CronusMax GamePack GUI (Graphical User Interface) ###########
# Importierung:
import tkinter, webbrowser
from tkinter import messagebox

# Programm - Klasse
class ScriptGameInterface:
    
    def mainprocess(self):
        # Hauptfenster:
         self.mainwindow = tkinter.Tk()
         self.mainwindow.title("xXSkyWalkerXx1 - Fortnite S.G.I. Tool")
         self.mainwindow.resizable(0,0)
         self.mainwindow.geometry("1200x540") #(x - Y)
         
        # Menüleiste:
         self.menuLeiste = tkinter.Menu(self.mainwindow)
         self.infoLeiste = tkinter.Menu(self.menuLeiste,tearoff=0)
         self.exitLeiste = tkinter.Menu(self.menuLeiste,tearoff=0)
         self.updateLeiste = tkinter.Menu(self.menuLeiste,tearoff=0)
         self.shopLeiste = tkinter.Menu(self.menuLeiste,tearoff=0)

         self.infoLeiste.add_command(label = "AGBs", command = self.showAGB)
         self.infoLeiste.add_command(label = "Credits", command = self.showAuthor)
         self.exitLeiste.add_command(label = "Beenden", foreground = "red",command = self.Beenden) #Ändert Schriftfarbe zu Rot (Hintergrund wäre "background")
         self.shopLeiste.add_command(label = "Online Shop", foreground = "green",command = self.openShopLink)

         self.menuLeiste.add_cascade(label="Infos", menu= self.infoLeiste)
         self.menuLeiste.add_cascade(label="Update[comming soon!]", menu= self.updateLeiste)
         self.menuLeiste.add_cascade(label="More Scripts", menu= self.shopLeiste)
         self.menuLeiste.add_cascade(label="Beenden", menu= self.exitLeiste)

         self.mainwindow["menu"] = self.menuLeiste
         
        # Frames:
         self.frameLeft = tkinter.Frame(self.mainwindow,width=200,height=300,relief="sunken",bd=0)#300 , 540
         self.frameLeft.pack(side="left",expand=1)
         self.frameRight = tkinter.Frame(self.mainwindow, width=500,height=400,relief="sunken",bd=0)#900 , 540
         self.frameRight.pack(side="right",expand=1)

        # Widgets vom/für linken Frame:
         self.generateButton = tkinter.Button(self.frameLeft, text= ">>>GENERATE SCRIPT<<<", command = self.generate)
         self.generateLabel = tkinter.Label(self.frameLeft, text =
         "IF YOU WANT THE DEFAULT SETTINGS, JUST CHANGE\n\
           NOTHING AND GENERATE NOW THE SCRIPT! :)", font = "arial 10 italic")
         self.infoLabel1 = tkinter.Label(self.frameLeft, text = "Layout Settings:", font = "arial 27 bold", foreground = "orange")  #Gibt Text in Arial, Größe 25 und Art fettgedruckt aus
         self.layoutButton = tkinter.Button(self.frameLeft, text = "Layout Settings", command = self.layoutSettings)
         self.infoLabel2 = tkinter.Label(self.frameLeft, text = "Mods:", font = "arial 27 bold", foreground = "orange")  #Gibt Text in Arial, Größe 25 und Art fettgedruckt aus
         self.aimbotButton = tkinter.Button(self.frameLeft, text = "Aimbot", command = self.aimbotSettings)
         self.aimassistButton = tkinter.Button(self.frameLeft, text = "AimAssist", command = self.aimassistSettings)
         self.norecoilButton = tkinter.Button(self.frameLeft, text = "NoRecoil", command = self.norecoilSettings)
         self.rapidfireButton = tkinter.Button(self.frameLeft, text = "RapidFire", command = self.rapidfireSettings)
         self.jitterButton = tkinter.Button(self.frameLeft, text = "Double Tac & Pump", command = self.jitterSettings)
         self.autorunButton = tkinter.Button(self.frameLeft, text = "AutoRun", command = self.autorunSettings)
         self.dropshotButton = tkinter.Button(self.frameLeft, text = "DropShot", command = self.dropshotSettings)
         self.hairtriggerButton = tkinter.Button(self.frameLeft, text = "HairTrigger", command = self.hairtriggerSettings)
         self.notifyButton = tkinter.Button(self.frameLeft, text = "Notify", command = self.notifySettings)
        
        # Widgets vom/für rechten Frame:
         self.titleLabel = tkinter.Label(self.frameRight,foreground = "red", font = "arial 33 bold")
         self.previewLabel = tkinter.Label(self.frameRight, text = "PLACEHOLDER FOR PICTURE/VIDEO!")
         self.info1Label = tkinter.Label(self.frameRight, text = "Information/en:",foreground = "red",font = "arial 18 bold") 
         self.info2Label = tkinter.Label(self.frameRight,text = "<Noch keine Informationen enthalten!>",font = "arial 10") 
         self.setting1Label = tkinter.Label(self.frameRight, text = "Einstellungen:",foreground = "red",font = "arial 18 bold")
         self.setting2Label = tkinter.Label(self.frameRight, text = "Schaltung:",font = "arial 10")
         self.setting3Label = tkinter.Label(self.frameRight,font = "arial 10")
         self.setting4Label = tkinter.Label(self.frameRight,font = "arial 10")
         self.setting5Label = tkinter.Label(self.frameRight,font = "arial 10")              
         self.entry_AimSpeed = tkinter.Entry(self.frameRight)
         self.entry_sens = tkinter.Entry(self.frameRight)
         self.entry_delay = tkinter.Entry(self.frameRight)
         self.entry_valueX = tkinter.Entry(self.frameRight)
         self.entry_valueY = tkinter.Entry(self.frameRight)
         self.entry_delayA = tkinter.Entry(self.frameRight)
         self.entry_antirecoil_sg = tkinter.Entry(self.frameRight)
         self.entry_antirecoil_fg = tkinter.Entry(self.frameRight)
         self.entry_shootrate = tkinter.Entry(self.frameRight)
         self.entry_jitterspeed= tkinter.Entry(self.frameRight)
         self.toggle1 = tkinter.StringVar()
         self.toggle2 = tkinter.StringVar()
         self.toggle3 = tkinter.StringVar()
         self.toggle4 = tkinter.StringVar()
         self.toggle5 = tkinter.StringVar()
         self.toggle6 = tkinter.StringVar()
         self.toggle7 = tkinter.StringVar()
         self.toggle8 = tkinter.StringVar()
         self.toggle9 = tkinter.StringVar()
         self.toggle1.set("TRUE")
         self.toggle1.set("FALSE")
         self.toggle2.set("TRUE")
         self.toggle2.set("FALSE")
         self.toggle3.set("TRUE")
         self.toggle3.set("FALSE")
         self.toggle4.set("TRUE")
         self.toggle4.set("FALSE")
         self.toggle5.set("TRUE")
         self.toggle5.set("FALSE")
         self.toggle6.set("TRUE")
         self.toggle6.set("FALSE")
         self.toggle7.set("TRUE")
         self.toggle7.set("FALSE")
         self.toggle8.set("TRUE")
         self.toggle8.set("FALSE")
         self.toggle9.set("TRUE")
         self.toggle9.set("FALSE")
         self.on_Aimbot = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle1,value = "TRUE")
         self.off_Aimbot = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle1,value = "FALSE")
         self.on_AimAssist = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle2,value = "TRUE")
         self.off_AimAssist = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle2,value = "FALSE")
         self.on_NoRecoil = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle3,value = "TRUE")
         self.off_NoRecoil = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle3,value = "FALSE")
         self.on_Jitter = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle4,value = "TRUE")
         self.off_Jitter = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle4,value = "FALSE")
         self.on_AutoRun = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle5,value = "TRUE")
         self.off_AutoRun = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle5,value = "FALSE")
         self.on_RapidFire = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle6,value = "TRUE")
         self.off_RapidFire = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle6,value = "FALSE")
         self.on_DropShot = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle7,value = "TRUE")
         self.off_DropShot = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle7,value = "FALSE")
         self.on_HairTrigger = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle8,value = "TRUE")
         self.off_HairTrigger = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle8,value = "FALSE")
         self.on_Notify = tkinter.Radiobutton(self.frameRight, text = " ON",variable = self.toggle9,value = "TRUE")
         self.off_Notify = tkinter.Radiobutton(self.frameRight, text = "OFF",variable = self.toggle9,value = "FALSE")
         
        # Widgets platzieren:
         self. generateButton.pack(pady=12)
         self.generateLabel.pack()
         self.infoLabel1.pack(pady=12)
         self.layoutButton.pack(pady=8)
         self.infoLabel2.pack(pady=12)
         self.aimbotButton.pack(pady=8)
         self.aimassistButton.pack(pady=8)
         self.norecoilButton.pack(pady=8)
         self.rapidfireButton.pack(pady=8)
         self.jitterButton.pack(pady=8)
         self.autorunButton.pack(pady=8)
         self.dropshotButton.pack(pady=8)
         self.hairtriggerButton.pack(pady=8)
         self.notifyButton.pack(pady=8)
         
       # Alles im Loop ausführen:
         self.mainwindow.mainloop()

    def Beenden(self):
        self.mainwindow.destroy()

    def check_updates(self):
        pass

    def openShopLink(self):
        try:
            self.webbrowser.open("https://selly.gg/@xXSkyWalkerXx1")
        except:
            self.error = tkinter.messagebox.showerror("Fehler","Verbindung konnte nicht aufgebaut werden!")    

    def showAGB(self):
        self.infoText = tkinter.messagebox.showinfo("AGBs","\
    **************************************\n\
       Hier werden später die AGBs stehen!   \n\
    **************************************") #41 "*" für eine ganze Zeile

    def showAuthor(self):
        self.infoText = tkinter.messagebox.showinfo("Credits","\
    **************************************\n\
            Credits: xXSkyWalkerXx1\n\
              Thanks to:  __deets__\n\
    **************************************")
        
    def layoutSettings(self): 
        self.titleLabel["text"] = "Layout"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting3Label["text"] = "In - Game - Sensitivity:"
        self.setting3Label.pack()
        self.entry_sens.pack()

        self.on_Aimbot.pack_forget()
        self.off_Aimbot.pack_forget()
        self.on_AimAssist.pack_forget()
        self.off_AimAssist.pack_forget()
        self.on_NoRecoil.pack_forget()
        self.off_NoRecoil.pack_forget()
        self.on_Jitter.pack_forget()
        self.off_Jitter.pack_forget()
        self.on_AutoRun.pack_forget()
        self.off_AutoRun.pack_forget()
        self.on_RapidFire.pack_forget()
        self.off_RapidFire.pack_forget()
        self.setting2Label.pack_forget()
        self.setting4Label.pack_forget()
        self.entry_AimSpeed.pack_forget()
        self.entry_delay.pack_forget()
        self.entry_valueX.pack_forget()
        self.entry_valueY.pack_forget()
        self.entry_delayA.pack_forget()
        self.entry_antirecoil_sg.pack_forget()
        self.entry_antirecoil_fg.pack_forget()
        self.entry_shootrate.pack_forget()
        self.entry_jitterspeed.pack_forget()
        self.setting5Label.pack_forget()

    def aimbotSettings(self):
        self.titleLabel["text"] = "Aimbot"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()
        self.on_Aimbot.pack()
        self.off_Aimbot.pack()
        self.setting3Label["text"] = "Geschwindigkeit Zoom-In:"
        self.setting3Label.pack()
        self.entry_AimSpeed.pack()
        self.setting4Label["text"] = "Geschwindigkeit Zoom-Out:"
        self.setting4Label.pack()
        self.entry_delay.pack()

        self.on_AimAssist.pack_forget()
        self.off_AimAssist.pack_forget()
        self.on_NoRecoil.pack_forget()
        self.off_NoRecoil.pack_forget()
        self.on_Jitter.pack_forget()
        self.off_Jitter.pack_forget()
        self.on_AutoRun.pack_forget()
        self.off_AutoRun.pack_forget()
        self.on_RapidFire.pack_forget()
        self.off_RapidFire.pack_forget()
        self.entry_sens.pack_forget()
        self.entry_valueX.pack_forget()
        self.entry_valueY.pack_forget()
        self.entry_delayA.pack_forget()
        self.entry_antirecoil_sg.pack_forget()
        self.entry_antirecoil_fg.pack_forget()
        self.entry_shootrate.pack_forget()
        self.entry_jitterspeed.pack_forget()
        self.setting5Label.pack_forget()

    def aimassistSettings(self):
        self.titleLabel["text"] = "AimAssist"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()
        self.on_AimAssist.pack()
        self.off_AimAssist.pack()
        self.setting3Label["text"] = "Geschwindigkeit:"
        self.setting3Label.pack()
        self.entry_delayA.pack()
        self.setting4Label["text"] = "Y - Wert:"
        self.setting4Label.pack()
        self.entry_valueY.pack() 
        self.setting5Label["text"] = "X - Wert:"
        self.setting5Label.pack()
        self.entry_valueX.pack() 

        self.on_Aimbot.pack_forget()
        self.off_Aimbot.pack_forget()
        self.on_NoRecoil.pack_forget()
        self.off_NoRecoil.pack_forget()
        self.on_Jitter.pack_forget()
        self.off_Jitter.pack_forget()
        self.on_AutoRun.pack_forget()
        self.off_AutoRun.pack_forget()
        self.on_RapidFire.pack_forget()
        self.off_RapidFire.pack_forget()
        self.entry_sens.pack_forget()
        self.setting2Label.pack_forget()
        self.entry_AimSpeed.pack_forget()
        self.entry_delay.pack_forget()
        self.entry_antirecoil_sg.pack_forget()
        self.entry_antirecoil_fg.pack_forget()
        self.entry_shootrate.pack_forget()
        self.entry_jitterspeed.pack_forget()

    def norecoilSettings(self):
        self.titleLabel["text"] = "NoRecoil"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()
        self.on_NoRecoil.pack()
        self.off_NoRecoil.pack()
        self.setting3Label["text"] = "NoRecoil for slow guns - Y Axis (positiv):"
        self.setting3Label.pack()
        self.entry_antirecoil_sg.pack()
        self.setting4Label["text"] = "NoRecoil for fast guns - Y Axis (positiv):"
        self.setting4Label.pack()
        self.entry_antirecoil_fg.pack()

        self.on_Aimbot.pack_forget()
        self.off_Aimbot.pack_forget()
        self.on_AimAssist.pack_forget()
        self.off_AimAssist.pack_forget()
        self.on_Jitter.pack_forget()
        self.off_Jitter.pack_forget()
        self.on_AutoRun.pack_forget()
        self.off_AutoRun.pack_forget()
        self.on_RapidFire.pack_forget()
        self.off_RapidFire.pack_forget()
        self.entry_sens.pack_forget()
        self.setting2Label.pack_forget()
        self.entry_AimSpeed.pack_forget()
        self.entry_delay.pack_forget()
        self.entry_valueX.pack_forget()
        self.entry_valueY.pack_forget()
        self.entry_delayA.pack_forget()
        self.entry_shootrate.pack_forget()
        self.entry_jitterspeed.pack_forget()
        self.setting5Label.pack_forget()

    def jitterSettings(self):
        self.titleLabel["text"] = "Double Tac & Pump"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()
        self.on_Jitter.pack()
        self.off_Jitter.pack()
        self.setting3Label["text"] = "Geschwindigkeit:"
        self.setting3Label.pack()
        self.entry_jitterspeed.pack()

        self.on_Aimbot.pack_forget()
        self.off_Aimbot.pack_forget()
        self.on_AimAssist.pack_forget()
        self.off_AimAssist.pack_forget()
        self.on_NoRecoil.pack_forget()
        self.off_NoRecoil.pack_forget()
        self.on_AutoRun.pack_forget()
        self.off_AutoRun.pack_forget()
        self.on_RapidFire.pack_forget()
        self.off_RapidFire.pack_forget()
        self.entry_sens.pack_forget()
        self.setting2Label.pack_forget()
        self.entry_AimSpeed.pack_forget()
        self.entry_delay.pack_forget()
        self.entry_valueX.pack_forget()
        self.entry_valueY.pack_forget()
        self.entry_delayA.pack_forget()
        self.entry_antirecoil_sg.pack_forget()
        self.entry_antirecoil_fg.pack_forget()
        self.entry_shootrate.pack_forget()
        self.setting4Label.pack_forget()
        self.setting5Label.pack_forget()

    def autorunSettings(self):
        self.titleLabel["text"] = "AutoRun"
        self.titleLabel.pack(side="top",pady=12)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()
        self.on_AutoRun.pack()
        self.off_AutoRun.pack()

        self.on_Aimbot.pack_forget()
        self.off_Aimbot.pack_forget()
        self.on_AimAssist.pack_forget()
        self.off_AimAssist.pack_forget()
        self.on_NoRecoil.pack_forget()
        self.off_NoRecoil.pack_forget()
        self.on_Jitter.pack_forget()
        self.off_Jitter.pack_forget()
        self.on_RapidFire.pack_forget()
        self.off_RapidFire.pack_forget()
        self.entry_sens.pack_forget()
        self.setting2Label.pack_forget()
        self.entry_AimSpeed.pack_forget()
        self.entry_delay.pack_forget()
        self.entry_valueX.pack_forget()
        self.entry_valueY.pack_forget()
        self.entry_delayA.pack_forget()
        self.entry_antirecoil_sg.pack_forget()
        self.entry_antirecoil_fg.pack_forget()
        self.entry_shootrate.pack_forget()
        self.entry_jitterspeed.pack_forget()
        self.setting3Label.pack_forget()
        self.setting4Label.pack_forget()
        self.setting5Label.pack_forget()

    def rapidfireSettings(self): # (self,shootrate = "4") - set shootrate default to 4!
        self.titleLabel["text"] = "RapidFire"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()
        self.on_RapidFire.pack()
        self.off_RapidFire.pack()
        self.setting3Label["text"] = "Geschwindigkeit:"
        self.setting3Label.pack()
        self.entry_shootrate.pack()

        self.on_Aimbot.pack_forget()
        self.off_Aimbot.pack_forget()
        self.on_AimAssist.pack_forget()
        self.off_AimAssist.pack_forget()
        self.on_NoRecoil.pack_forget()
        self.off_NoRecoil.pack_forget()
        self.on_Jitter.pack_forget()
        self.off_Jitter.pack_forget()
        self.on_AutoRun.pack_forget()
        self.off_AutoRun.pack_forget()
        self.entry_sens.pack_forget()
        self.setting2Label.pack_forget()
        self.entry_AimSpeed.pack_forget()
        self.entry_delay.pack_forget()
        self.entry_valueX.pack_forget()
        self.entry_valueY.pack_forget()
        self.entry_delayA.pack_forget()
        self.entry_antirecoil_sg.pack_forget()
        self.entry_antirecoil_fg.pack_forget()
        self.entry_jitterspeed.pack_forget()
        self.setting4Label.pack_forget()
        self.setting5Label.pack_forget()

    def dropshotSettings(self):
        self.titleLabel["text"] = "DropShot"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()

    def hairtriggerSettings(self):
        self.titleLabel["text"] = "HairTrigger"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()

    def notifySettings(self):
        self.titleLabel["text"] = "Notifiy for toggle"
        self.titleLabel.pack(side="top",pady=12)
        self.previewLabel.pack(pady = 65)
        self.info1Label.pack()
        self.info2Label.pack(pady=25)
        self.setting1Label.pack()
        self.setting2Label.pack()
    
    def generate(self): # generiert Skript
        ingame_sens = self.entry_sens.get()
        toggleRF =  self.toggle6.get()
        toggleNR =  self.toggle3.get()
        toggleAR =  self.toggle5.get()
        toggleAimbot =  self.toggle1.get()
        toggleAA =  self.toggle2.get()
        toggleJitter =  self.toggle4.get()
        toggleDS = "FALSE"
        toggleRN = "TRUE"
        toggleHT = "TRUE"
        AimbotBTN = "PS4_L2"

        shootrate = self.entry_shootrate.get()
        valueY = self.entry_valueY.get()
        valueX = self.entry_valueX.get()
        delayA = self.entry_delayA.get()
        antirecoil_sg = self.entry_antirecoil_sg.get()
        antirecoil_fg = self.entry_antirecoil_fg.get()
        AimSpeed = self.entry_AimSpeed.get()
        delay = self.entry_delay.get()
        jitterspeed = self.entry_jitterspeed.get()
        dropshotSpeed = "200"
        
# Hauptkörper - "main"
Interface = ScriptGameInterface()
Interface.mainprocess()        
Das ist momentan der Code meiner GUI. Das Problem ist, dass wenn ich z.B. auf "Aimbot" klicke und dann auf "AimAssist", dass die Widgets nichts in der richtigen Reihenfolge mehr angezeigt werden.
Jedenfalls die Widgets nach "self.setting2Label.pack()".
Zum Beispiel sind auf einmal 2 Entrys direkt untereinander, obwohl dazwischen noch ein Label sein sollte oder so.
Wo liegt also nun der Fehler? :D
Und wie füge ich dem Fenster ein Icon hinzu?


PS. Den Skript, der verändert werden soll, habe ich rausgelassen. Und hoffe es nervt nicht, dass ich recht einige Threads schon erstellt habe. :D

Mit freundlichen Grüßen,
xXSkyWalkerXx1
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Du gehst das falsch an. Statt da immer alles zu layouten und in den anderen Einstellungen alle anderen zu de-layouten, layouted man *alles* am Anfang. Und zwar jeden Satz von Einstellungen in einem eigenen Frame. Die legt man dann in einen weiteren Frame alle übereinander, eventuell noch einen leeren Frame oben drauf wenn am Anfang nichts angezeigt werden soll. Und wenn man dann Einstellungen auswählt, holt man den entsprechenden Frame einfach nach vorne.

Und man muss das auch nicht zwingend alles selber machen, denn es gibt ttk.Notebook dafür. Hatte ich aber glaube ich schon mal geschrieben.

Es werden da auch zu viele Namen irgendwie durchnummeriert, statt da tatsächlich aussagekräftige Namen zu verwenden.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Ich weiß, die Idee mit ttk.Notebook"

Achso meinst das, du meinst das so oder... :

Code: Alles auswählen

class <...>:
   #nichts
      def <frame1>:
             # Platziere Frame
             #Widgets platzieren lassen, die man mag
             
       def <frame2>:
             # Platziere Frame
             #Widgets platzieren lassen, die man mag
       
       #....
Und der jeweilige Button ruft dann die Funktion auf und so... So meinst das, oder?
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Oder das als Beispiel:

Code: Alles auswählen

    def aimbotSettings(self):
        self.frameRightAimbot.pack(side="right",expand=1)

        self.titleLabel = tkinter.Label(self.frameRightAimbot,text="Aimbot",foreground = "red", font = "arial 33 bold")
        self.previewLabel = tkinter.Label(self.frameRightAimbot,text = "PLACEHOLDER FOR PICTURE/VIDEO!")
        self.info1Label = tkinter.Label(self.frameRightAimbot,text = "Information/en:",foreground = "red",font = "arial 18 bold") 
        self.info2Label = tkinter.Label(self.frameRightAimbot,text = "<Noch keine Informationen enthalten!>",font = "arial 10") 
        self.setting1Label = tkinter.Label(self.frameRightAimbot,text = "Einstellungen:",foreground = "red",font = "arial 18 bold")
        self.setting2Label = tkinter.Label(self.frameRightAimbot,text = "Schaltung:",font = "arial 10")
        self.setting3Label = tkinter.Label(self.frameRightAimbot,text="ZoomIn time:",font = "arial 10")
        self.entry_AimSpeed = tkinter.Entry()
        self.setting4Label = tkinter.Label(self.frameRightAimbot,text="ZoomOut time:",font = "arial 10")
        self.entry_delay = tkinter.Entry()  
So wird der Frame durch den Buttondruck geöffnet, inkl. Widgets.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Naja, mit Widgetplatzierung:

Code: Alles auswählen

 def aimbotSettings(self):
        self.frameRightAimbot.pack(expand=1)

        self.toggle1 = tkinter.StringVar()
        self.toggle1.set("TRUE")
        self.toggle1.set("FALSE")
        
        self.titleLabel = tkinter.Label(self.frameRightAimbot,text="Aimbot",foreground = "red", font = "arial 33 bold")
        self.previewLabel = tkinter.Label(self.frameRightAimbot,text = "PLACEHOLDER FOR PICTURE/VIDEO!")
        self.info1Label = tkinter.Label(self.frameRightAimbot,text = "Information/en:",foreground = "red",font = "arial 18 bold") 
        self.info2Label = tkinter.Label(self.frameRightAimbot,text = "<Noch keine Informationen enthalten!>",font = "arial 10") 
        self.setting1Label = tkinter.Label(self.frameRightAimbot,text = "Einstellungen:",foreground = "red",font = "arial 18 bold")
        self.setting2Label = tkinter.Label(self.frameRightAimbot,text = "Schaltung:",font = "arial 10")
        self.on_Aimbot = tkinter.Radiobutton(self.frameRightAimbot,text = " ON",variable = self.toggle1,value = "TRUE")
        self.off_Aimbot = tkinter.Radiobutton(self.frameRightAimbot,text = "OFF",variable = self.toggle1,value = "FALSE") 
        self.setting3Label = tkinter.Label(self.frameRightAimbot,text="ZoomIn time:",font = "arial 10")
        self.entry_AimSpeed = tkinter.Entry(self.frameRightAimbot)
        self.setting4Label = tkinter.Label(self.frameRightAimbot,text="ZoomOut time:",font = "arial 10")
        self.entry_delay = tkinter.Entry(self.frameRightAimbot)

        self.titleLabel.pack()
        self.previewLabel.pack()
        self.info1Label.pack()
        self.info2Label.pack()
        self.setting1Label.pack()
        self.setting2Label.pack()
        self.on_Aimbot.pack()
        self.off_Aimbot.pack()
        self.setting3Label.pack()
        self.entry_AimSpeed.pack()
        self.setting4Label.pack()
        self.entry_delay.pack()
Doch, die Frames werden nicht übereinander gesetzt, sondern eingereiht.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mit `pack()` geht das auch nicht. Man muss die mit `grid()` alle in die selbe Zelle setzen. Aber das da so alles zu erstellen wenn die Schaltfläche gedrückt wurde ist ja auch schon zu spät. Auf Knopfdruck sollte der bereits vorhandene und befüllte Frame nur noch in den Vordergrund geholt werden.

Und zum einen bindest Du da auch Sachen an das Objekt die man gar nicht am Objekt braucht/haben will, und wenn Du das in jeder Methode machst, auch insgesamt viel zu viel an dieses eine Objekt was da gar nicht hin gehört. Die jeweiligen Einstellungen sind ja eigenständig. Oder sollten es zumindest sein.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Egal, ich bin Neuling, es funktioniert momentan auf meiner Weise. :D
Das Programm soll ja anfangs erstmal bloß funktionieren, werde ja mit der Zeit mehr anlernen und so immer mal bereits vorhandene Codestücke des Codes ändern.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wenn es funktionieren würde, gäbe es dieses Thema hier ja nicht. ;-)
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Naja, ich hatte vorhin nochmal was probiert und dann gings. ^^
Lasse halt alle Widgets beim Drücken von z.b. "Aimbot" erstmal vergessen und dann werden sie platziert.
Glaube du hattest mich drauf gebracht. :D
Ist zwar nicht originel, aber als Anfänger ist man froh, wenn's überhaupt geht.
Immerhin kann/tut man mit der Zeit ja sein Programm verbessern und so es vllt professioneller Umschreiben. :D
Antworten