Ich habe es geschafft, eine Startseite zu haben, gefolgt von einer zweiten Seite, die eine Datei-Browser-Taste enthält. Ich möchte die Benutzereingabe in diesen Dateibrowser haben (Kopieren und Einfügen in eine Eingabezeile). Wenn das Verzeichnis entweder vom Benutzer eingegeben oder mit der Schaltfläche durchsucht wird, möchte ich, dass das Verzeichnis in der Leiste angezeigt wird.Verzeichnis-Browser und Eingabe-Leiste mit Tkinter
import tkinter as tk
from tkinter import ttk
from tkinter.filedialog import askdirectory
LARGE_FONT= ("Calibri", 12)
class RevitJournalSearch(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageOne):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label = ttk.Label(self, text="""What to expect from this...
\n
\n-Browse folder location""", font=LARGE_FONT)
label.pack(pady=10,padx=10)
button1 = ttk.Button(self, text="Continue",
command=lambda: controller.show_frame(PageOne))
button1.pack()
button2 = ttk.Button(self, text="Close",
command=quit)
button2.pack()
class PageOne(tk.Frame):
def __init__(self, parent, controller, master):
tk.Frame.__init__(self,parent)
label = ttk.Label(self, text="File Select", font=LARGE_FONT)
label.pack(pady=10,padx=10)
errmsg = 'Error!'
button_browser = ttk.Button(self, text="BROWSE",
command= self.callback)
button_browser.pack()
def callback(self):
self.name= askdirectory()
app = RevitJournalSearch()
app.mainloop()
Ich bin mir nicht sicher, wo die self.entry
Code zu platzieren.
Versuchte duplizierten Code zu entfernen. Bitte überprüfen Sie, ob alles (Einrückungen usw.) jetzt in Ordnung ist. – Lafexlos