前言
對點擊打開的文件路徑進行記錄顯示
記錄點擊的文件路徑和文件夾路徑
記錄文件路徑,在text中顯示,刪除和關閉窗口
前言需要注意,對實例化的文本組件的insert、delete等操作的index**都是浮點型而不是整型**,(1.0,2.0)表示的是對第一行操作,關閉窗口需要知道作用的對象是最根本的窗口,不是某個Frame。
Text的幾個主要設置參數:
第一個參數:窗體或框架變量
state:控制是否可以修改text的文字內容,normal,disable
width,height:寬和高
text組件的一個主要操作:
txt_entry=Text(wintool,state,width,height).pack()txt_entry.get(start_index,end_index)#讀取text中的字符內容,start_index,end_index都是浮點數,整數部分表示一行txt_entry.delete(start_index,end_index) # 刪除文本txt_entry.insert(start_index,'文本內容')# 對text插入文本內容,若是結尾索引可以使用END
import tkinter.filedialog as fd:用於讀取文件或路徑的庫fd.askdirectory:返回點擊的路徑fd.askopenfilenames():返回多個選中文件的名字txt_entry=Text(wintool,width,height,).pack():組件實例化和放置txt_entry(組件實例化後的變量)
對點擊打開的文件路徑進行記錄顯示from tkinter import *import tkinter.filedialog as fdall_path = [] # 記錄全局路徑def openFloder(): folder_path = fd.askdirectory(initialdir=r"D:\graduate\小程序\車牌的總數量及省份統計") # 打開文件 show_folderPath.delete(0.0,END) # 清空 show_folderPath.insert(0.0,folder_path) #寫入路徑 print(folder_path) all_path.append(folder_path) txt.delete(0.0,'end') txt.insert(0.0,all_path) #插入的第一個字符是索引馬,不能是整數形式 print('all_path:',all_path) root = Tk() # 生成主窗口對象root.title('Demo') # 窗口標題root.geometry('400x400') # 窗口大小fr= Frame(root,width=200,height=200,)fr.pack(side='top',expand='yes')txt = Text(fr,bd=5)txt.pack(side='bottom')txt_txt = txt.get(0.0)print('txt_txt:',txt_txt)fr1= Frame(fr,width=100,height=30,bg='gray')fr1.pack(side='left',expand='yes')fr2= Frame(fr,width=100,height=30,bg='white')fr2.pack(side='left',expand='yes')show_folderPath = Entry(fr2)show_folderPath .pack(side='left')btn = Button(fr1,bg='orange',text ="選擇文件",command = openFloder) # 在root窗口對象上設置一個按鈕,用於打開文件和返回選擇的文件名btn.pack()root.mainloop()
記錄點擊的文件路徑和文件夾路徑更多相關文件路徑可以參考
# from tkinter import *import tkinter as tkimport tkinter.filedialog as fdfrom tkinter import filedialogdef select_file(): # 單個文件選擇 selected_file_path = filedialog.askopenfilename() # 使用askopenfilename函數選擇單個文件 select_path.set(selected_file_path) def select_files(): # 多個文件選擇 selected_files_path = filedialog.askopenfilenames() # askopenfilenames函數選擇多個文件 select_path.set('\n'.join(selected_files_path)) # 多個文件的路徑用換行符隔開,更新tkinter的字符變量def select_folder(): # 文件夾選擇 selected_folder = filedialog.askdirectory() # 使用askdirectory函數選擇文件夾 select_path.set(selected_folder)root = tk.Tk()root.title("選擇文件或文件夾,得到路徑")# 初始化Entry控件的textvariable屬性值,能夠實時讀取控件的變化select_path = tk.StringVar()# 布局控件tk.Label(root, text="文件路徑:").grid(column=0, row=0, rowspan=3)tk.Entry(root, textvariable = select_path).grid(column=1, row=0, rowspan=7)tk.Button(root, text="選擇單個文件", command=select_file).grid(row=0, column=2)tk.Button(root, text="選擇多個文件", command=select_files).grid(row=1, column=2)tk.Button(root, text="選擇文件夾", command=select_folder).grid(row=2, column=2)root.mainloop()
記錄文件路徑,在text中顯示,刪除和關閉窗口from tkinter import *import tkinter as tkimport tkinter.filedialog as fdall_paths=[]def real_close(): #定義關閉窗口命令,在button中使用,若使用定義的函數,必須把定義放在使用語句的前邊 root.quit()def choose_folder(): # 每次選擇一個文件路徑 folder_dirs["state"] = 'normal' # 將文本框組件修改為可修改 # folder_dirs.delete(0.0,END) # 清空,第一個參數必須是浮點型的不能是整型 select_folder = fd.askdirectory() # 每次點擊文件 select_paths.set(select_folder) #為了顯示 all_paths.append(select_folder) # 為了記錄點擊過的所有文件路徑 print(all_paths) # text組件對記錄的路徑顯示,且連續從後邊插入,為了顯示 folder_dirs.insert('end',select_paths.get()+'\n') folder_dirs["state"] = 'disable' # 將文本框修改為不可修改def delete_folder(): # 每次選擇一個文件路徑 folder_dirs["state"] = 'normal' # 將文本框組件修改為可修改 folder_txt = folder_dirs.get(1.0,'end').split('\n') txt_len = len(folder_txt) txt_start = '%s.0'%(txt_len-2) # text組件中的索引表示的含義:1.1表示第一行第一個字符, txt_end = '%s.0'%(txt_len-1) # folder_dirs.delete(1.0,2.0)表示刪除第一行內容 folder_dirs.delete(txt_start,txt_end) all_paths.pop() print(all_paths) folder_dirs["state"] = 'disable' # 將文本框修改為不可修改root=Tk()root.title('文件夾的選擇和路徑顯示')root.geometry('800x400') # 窗體大小# 記錄點取的路徑,使用內容時需要使用get()方法,每次記錄一個路徑select_paths = tk.StringVar() Label(root,text="folders:",font=("Arial", 16),bg='yellow').pack(side='left',padx=5,pady=5)folder_dirs=Text(root,state='disable',bd=5,width=50,height=25,) # 定義路徑文本框folder_dirs.pack(side='left',padx=5,pady=5) # 放置文本組件Button(root, text = "choose folder", command=choose_folder,font=("Arial", 12),bg='green').pack(side='left',padx=5,pady=5)Button(root, text = "delete folder", command=delete_folder,font=("Arial", 12),bg='red').pack(side='left',padx=5,pady=5)but=Button(root, text = "EXIT", command=real_close,font=("Arial", 12),bg='red')but.pack(side='bottom',expand=0)root.mainloop()
到此這篇關於python tkinter庫的Text記錄點擊路經和刪除記錄詳情的文章就介紹到這了,更多相關python tkinter庫 內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!