[英]how to Divide class based frames in tkinter frames into different python files
[英]How to add frames in Python tkinter?
在下面給出的代碼中,我只想在選中“土壤”復選框時打開文件打開對話框,然后對“天氣”復選框重復相同的操作。
需要將“土壤”檢查按鈕,“天氣”檢查按鈕和“提交”按鈕放置在GUI框架的左側,並且滾動條應包含2個打開文件的詳細信息(從“文件打開”對話框中選擇的文件框”(以“文本”格式),將其放置在GUI框架的右側
from tkinter import *
from tkinter import Tk
from tkinter.filedialog import askopenfilename
win = Tk()
frame = Frame(win)
frame.pack()
rightframe = Frame(win)
rightframe.pack( side = RIGHT )
#frame_name = Frame(win)
#frame_address = Frame(win)
win.title("Spatialization of DSSAT model")
w = 800
h = 400
ws = win.winfo_screenwidth()
hs = win.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
win.geometry('%dx%d+%d+%d' % (w, h, x, y))
def forCheckbutton1():
filename1 = askopenfilename()
print(filename1)
def forCheckbutton2():
filename2 = askopenfilename()
print(filename2)
def forMuButton1():
win.destroy()
def var_states():
print("soil: %d, \nweather:%d" % (MyVar1.get(), MyVar2.get()))
MyLabel1 = Label(frame, text="Select:")
MyLabel1.grid(row=0, column=0, sticky=W)
MyVar1 = IntVar()
MyVar2 = IntVar()
MyCheckbutton1 = Checkbutton(frame, text="soil", variable=MyVar1, command=forCheckbutton1)
MyCheckbutton1.grid(row=1, column=0, sticky=W)
MyCheckbutton2 = Checkbutton(frame, text="weather", variable=MyVar2, command=forCheckbutton2)
MyCheckbutton2.grid(row=2, column=0, sticky=W)
MyButton1 = Button(frame, text="Submit", width=10, command=forMuButton1)
MyButton1.grid(row=5, columnspan=3)
scrollbar = Scrollbar(rightframe)
scrollbar.pack( side = RIGHT, fill = Y )
myList = Listbox(rightframe, yscrollcommand = scrollbar.set )
forCheckbutton1()
forCheckbutton2()
myList.pack( side = LEFT, fill = BOTH )
scrollbar.config( command = myList.yview )
win.mainloop()
僅在選中按鈕時才從主forCheckbutton2()
刪除forCheckbutton1()
和forCheckbutton2()
以打開對話框。 要將框放置在左側,請將side
設置為LEFT
。 為了使滾動條中的文件內容完整,請在功能中打開文件。 嘗試這個:
from tkinter import *
from tkinter import Tk
from tkinter.filedialog import askopenfilename
win = Tk()
frame = Frame(win)
frame.pack(side=LEFT)
rightframe = Frame(win)
rightframe.pack( side = RIGHT )
win.title("Spatialization of DSSAT model")
w = 800
h = 400
ws = win.winfo_screenwidth()
hs = win.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
win.geometry('%dx%d+%d+%d' % (w, h, x, y))
def forCheckbutton1():
filename1 = askopenfilename()
with open(filename1) as f:
for i in f:
myList.insert(END, i)
print(filename1)
def forCheckbutton2():
filename2 = askopenfilename()
with open(filename2) as f:
for i in f:
myList.insert(END, i)
print(filename2)
def forMuButton1():
win.destroy()
def var_states():
print("soil: %d, \nweather:%d" % (MyVar1.get(), MyVar2.get()))
MyLabel1 = Label(frame, text="Select:")
MyLabel1.grid(row=0, column=0, sticky=W)
MyVar1 = IntVar()
MyVar2 = IntVar()
MyCheckbutton1 = Checkbutton(frame, text="soil", variable=MyVar1, command=forCheckbutton1)
MyCheckbutton1.grid(row=1, column=0, sticky=W)
MyCheckbutton2 = Checkbutton(frame, text="weather", variable=MyVar2, command=forCheckbutton2)
MyCheckbutton2.grid(row=2, column=0, sticky=W)
MyButton1 = Button(frame, text="Submit", width=10, command=forMuButton1)
MyButton1.grid(row=5, columnspan=3)
scrollbar = Scrollbar(rightframe)
scrollbar.pack( side = RIGHT, fill = Y )
myList = Listbox(rightframe, yscrollcommand = scrollbar.set )
myList.pack( side = LEFT, fill = BOTH )
scrollbar.config( command = myList.yview )
win.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.