天天看點

Python--tkinter之filedialogtkinter.filedialog 的學習

tkinter.filedialog 的學習

tkinter.filedialog.asksaveasfilename():選擇以什麼檔案名儲存,傳回檔案名

def selectinputPath():
    input_path = asksaveasfilename()
    inputpath1 = inputpath.set(input_path)
    print(input_path)
           

顯示如下:

Python--tkinter之filedialogtkinter.filedialog 的學習
Python--tkinter之filedialogtkinter.filedialog 的學習

tkinter.filedialog.askopenfilename():選擇打開什麼檔案,傳回檔案的絕對路徑

def selectinputPath():
    input_path = askopenfilename()
    inputpath1 = inputpath.set(input_path)
    print(input_path)
           

顯示如下:

Python--tkinter之filedialogtkinter.filedialog 的學習

tkinter.filedialog.askdirectory():選擇目錄,傳回目錄名

def selectinputPath():
    input_path = askdirectory()
    inputpath1 = inputpath.set(input_path)
    print(input_path)
           

顯示如下:

Python--tkinter之filedialogtkinter.filedialog 的學習

代碼如下:

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() #主視窗循環顯示