tkinter.filedialog 的學習
tkinter.filedialog.asksaveasfilename():選擇以什麼檔案名儲存,傳回檔案名
def selectinputPath():
input_path = asksaveasfilename()
inputpath1 = inputpath.set(input_path)
print(input_path)
顯示如下:
tkinter.filedialog.askopenfilename():選擇打開什麼檔案,傳回檔案的絕對路徑
def selectinputPath():
input_path = askopenfilename()
inputpath1 = inputpath.set(input_path)
print(input_path)
顯示如下:
tkinter.filedialog.askdirectory():選擇目錄,傳回目錄名
def selectinputPath():
input_path = askdirectory()
inputpath1 = inputpath.set(input_path)
print(input_path)
顯示如下:
代碼如下:
from tkinter import *
import tkinter.messagebox as messagebox
from tkinter.filedialog import *
import time
import os
import shutil
currentTime = time.strftime('%Y%m%d') #定義時間
def save_Filename():
saveas_filename = asksaveasfilename()
save_filename1 = save_filename.set(saveas_filename)
print(saveas_filename)
def selectPath():
input_path = askdirectory()
inputpath1 = inputpath.set(input_path)
print(input_path)
def select_Absolutepath():
absolute_path = askopenfilename()
absolutepath = Absolute.set(absolute_path)
print(absolute_path)
def Copyfilename():
file_name = askopenfilename()
file_name1 = os.path.basename(file_name) #取最後檔案名
filename1 = filename.set(file_name1)
print(file_name)
target = './'
Copyfile = shutil.copy(file_name,target) #将檔案複制目前目錄下
def getname():
name = name.get()
print(name)
def allsubmit():
# text = currentTime + '.txt'
with open(currentTime + '.txt', 'w') as f: #編寫文本
f.write(inputpath.get() + ' '+ filename.get())
messagebox.showinfo('Success', '恭喜您已成功送出 ') # 顯示對話框
master = Tk()
master.title('my window')
master.geometry('500x400')
menubar = Menu(master)
master.config(menu=menubar)
frame8 = Frame(master) #Frame 視窗部件
frame8.pack(fill=X) #pack()一個布局方法
label8 = Label(frame8, text='Saveas filename') #圖形界面上設定标簽
label8.grid(row=1, column=0) #grid() 基于網格布局方法
save_filename = StringVar() #定義變量
entryname = Entry(frame8, textvariable=save_filename) #視窗部件(用于輸入顯示一行文本),在label上設定
entryname.grid(row=1,column=2,ipadx=60,padx=10)
getname = Button(frame8, text='Select', command=save_Filename) #按鈕部件(與函數或方法相關聯,當按鈕被按下時,TK會自動調用相關聯的函數或方法)
getname.grid(row=1,column=4)
#input path放在frame1
frame1 = Frame(master)
frame1.pack(fill=X)
#輸入input gds
label1 = Label(frame1, text='Input path')
label1.grid(row=1, column=0)
inputpath = StringVar()
entryname = Entry(frame1, textvariable=inputpath)
entryname.grid(row=1,column=2,ipadx=60,padx=10)
#按鈕
getname = Button(frame1, text='Select', command=selectPath)
getname.grid(row=1,column=4)
frame3 = Frame(master)
frame3.pack(fill=X)
label3 = Label(frame3, text='Absolute_Path')
label3.grid(row=1, column=0)
Absolute = StringVar()
entryname = Entry(frame3, textvariable=Absolute)
entryname.grid(row=1,column=2,ipadx=60,padx=10)
getname = Button(frame3, text='Select', command=select_Absolutepath)
getname.grid(row=1,column=4)
#gds name放在frame2中
frame2 = Frame(master)
frame2.pack(fill=X)
label2 = Label(frame2, text='File Name')
label2.grid(row=1,column=0)
#輸入gds name
filename = StringVar()
entryname = Entry(frame2, textvariable=filename)
entryname.grid(row=1,column=2,ipadx=60,padx=10)
getname = Button(frame2, text='Select', command=Copyfilename)
getname.grid(row=1, column=3)
frame4 = Frame(master)
frame4.pack()
submit = Button(frame4, text='submit', command=allsubmit)
submit.grid()
frame6 = Frame(master)
frame6.pack() #設定空白标簽
frame7 = Frame(master)
frame7.pack()
frame5 = Label(master, bg='red',width=50)
frame5.pack()
master.mainloop() #主視窗循環顯示