python?tkinter庫的Text記錄點(diǎn)擊路經(jīng)和刪除記錄詳情
前言
需要注意,對實(shí)例化的文本組件的insert、delete等操作的index**都是浮點(diǎn)型而不是整型**,(1.0,2.0)表示的是對第一行操作,關(guān)閉窗口需要知道作用的對象是最根本的窗口,不是某個(gè)Frame。
Text的幾個(gè)主要設(shè)置參數(shù):
- 第一個(gè)參數(shù):窗體或框架變量
- state:控制是否可以修改text的文字內(nèi)容,normal,disable
- width,height:寬和高
text組件的一個(gè)主要操作:
txt_entry=Text(wintool,state,width,height).pack() txt_entry.get(start_index,end_index)#讀取text中的字符內(nèi)容,start_index,end_index都是浮點(diǎn)數(shù),整數(shù)部分表示一行 txt_entry.delete(start_index,end_index) ?# 刪除文本 txt_entry.insert(start_index,'文本內(nèi)容')# 對text插入文本內(nèi)容,若是結(jié)尾索引可以使用END
import tkinter.filedialog as fd:用于讀取文件或路徑的庫 fd.askdirectory:返回點(diǎn)擊的路徑 fd.askopenfilenames():返回多個(gè)選中文件的名字 txt_entry=Text(wintool,width,height,).pack():組件實(shí)例化和放置 txt_entry(組件實(shí)例化后的變量)
對點(diǎn)擊打開的文件路徑進(jìn)行記錄顯示
from tkinter import * import tkinter.filedialog as fd all_path = [] ?# 記錄全局路徑 def openFloder(): ? ? folder_path = fd.askdirectory(initialdir=r"D:\graduate\小程序\車牌的總數(shù)量及省份統(tǒng)計(jì)") # 打開文件 ? ? 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) ?#插入的第一個(gè)字符是索引馬,不能是整數(shù)形式 ? ? print('all_path:',all_path) ? ??root = Tk() ? # 生成主窗口對象 root.title('Demo') # 窗口標(biāo)題 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窗口對象上設(shè)置一個(gè)按鈕,用于打開文件和返回選擇的文件名 btn.pack() root.mainloop()?
記錄點(diǎn)擊的文件路徑和文件夾路徑
更多相關(guān)文件路徑可以參考
# from tkinter import * import tkinter as tk import tkinter.filedialog as fd from tkinter import filedialog def select_file(): ? ? # 單個(gè)文件選擇 ? ? selected_file_path = filedialog.askopenfilename() ?# 使用askopenfilename函數(shù)選擇單個(gè)文件 ? ? select_path.set(selected_file_path) ? def select_files(): ? ? # 多個(gè)文件選擇 ? ? selected_files_path = filedialog.askopenfilenames() ?# askopenfilenames函數(shù)選擇多個(gè)文件 ? ? select_path.set('\n'.join(selected_files_path)) ?# 多個(gè)文件的路徑用換行符隔開,更新tkinter的字符變量 def select_folder(): ? ? # 文件夾選擇 ? ? selected_folder = filedialog.askdirectory() ?# 使用askdirectory函數(shù)選擇文件夾 ? ? select_path.set(selected_folder) root = tk.Tk() root.title("選擇文件或文件夾,得到路徑") # 初始化Entry控件的textvariable屬性值,能夠?qū)崟r(shí)讀取控件的變化 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="選擇單個(gè)文件", command=select_file).grid(row=0, column=2) tk.Button(root, text="選擇多個(gè)文件", command=select_files).grid(row=1, column=2) tk.Button(root, text="選擇文件夾", command=select_folder).grid(row=2, column=2) root.mainloop()
記錄文件路徑,在text中顯示,刪除和關(guān)閉窗口
from tkinter import * import tkinter as tk import tkinter.filedialog as fd all_paths=[] def real_close(): ?#定義關(guān)閉窗口命令,在button中使用,若使用定義的函數(shù),必須把定義放在使用語句的前邊 ?? ?root.quit() def choose_folder(): ?# 每次選擇一個(gè)文件路徑 ?? ?folder_dirs["state"] = 'normal' ?# 將文本框組件修改為可修改 ?? ?# folder_dirs.delete(0.0,END) ?# 清空,第一個(gè)參數(shù)必須是浮點(diǎn)型的不能是整型 ?? ?select_folder = fd.askdirectory() ?# 每次點(diǎn)擊文件 ?? ?select_paths.set(select_folder) ? #為了顯示 ?? ?all_paths.append(select_folder) ?# 為了記錄點(diǎn)擊過的所有文件路徑 ?? ?print(all_paths) ?? ?# text組件對記錄的路徑顯示,且連續(xù)從后邊插入,為了顯示 ?? ?folder_dirs.insert('end',select_paths.get()+'\n') ? ?? ?folder_dirs["state"] = 'disable' ?# 將文本框修改為不可修改 def delete_folder(): ?# 每次選擇一個(gè)文件路徑 ?? ?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表示第一行第一個(gè)字符, ?? ?txt_end = '%s.0'%(txt_len-1)? ?? ?# folder_dirs.delete(1.0,2.0)表示刪除第一行內(nèi)容 ?? ?folder_dirs.delete(txt_start,txt_end) ? ?? ?all_paths.pop() ?? ?print(all_paths) ?? ?folder_dirs["state"] = 'disable' ?# 將文本框修改為不可修改 root=Tk() root.title('文件夾的選擇和路徑顯示') root.geometry('800x400') # 窗體大小 # 記錄點(diǎn)取的路徑,使用內(nèi)容時(shí)需要使用get()方法,每次記錄一個(gè)路徑 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()
到此這篇關(guān)于python tkinter庫的Text記錄點(diǎn)擊路經(jīng)和刪除記錄詳情的文章就介紹到這了,更多相關(guān)python tkinter庫 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用matplotlib繪制余弦的散點(diǎn)圖示例
這篇文章主要介紹了Python使用matplotlib繪制余弦的散點(diǎn)圖,涉及Python操作matplotlib的基本技巧與散點(diǎn)的設(shè)置方法,需要的朋友可以參考下2018-03-03如何利用python在剪貼板上讀取/寫入數(shù)據(jù)
說起處理數(shù)據(jù)就離不開導(dǎo)入導(dǎo)出,而我們使用Pandas時(shí)候最常用的就是read_excel、read_csv了,下面這篇文章主要給大家介紹了關(guān)于如何利用python在剪貼板上讀取/寫入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-07-07python?使用turtle實(shí)現(xiàn)實(shí)時(shí)鐘表并生成exe
這篇文章主要為大家詳細(xì)介紹了python使用Turtle庫繪制動態(tài)鐘表,并有需要可以生成exe可執(zhí)行文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Pandas數(shù)據(jù)操作分析基本常用的15個(gè)代碼片段
這篇文章主要介紹了Pandas數(shù)據(jù)操作分析基本常用的15個(gè)代碼片段,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Python面向?qū)ο蠖鄳B(tài)實(shí)現(xiàn)原理及代碼實(shí)例
這篇文章主要介紹了Python面向?qū)ο蠖鄳B(tài)實(shí)現(xiàn)原理及代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Diango + uwsgi + nginx項(xiàng)目部署的全過程(可外網(wǎng)訪問)
這篇文章主要給大家介紹了關(guān)于Diango + uwsgi + nginx項(xiàng)目部署的全過程(可外網(wǎng)訪問),文中通過示例代碼將部署的過程介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04Python干貨實(shí)戰(zhàn)之八音符醬小游戲全過程詳解
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python實(shí)現(xiàn)一個(gè)八音符醬小游戲,大家可以在過程中查缺補(bǔ)漏,提升水平2021-10-10詳解Python中的array數(shù)組模塊相關(guān)使用
數(shù)組并不是Python中內(nèi)置的標(biāo)配數(shù)據(jù)結(jié)構(gòu),不過擁有array模塊我們也可以在Python中使用數(shù)組結(jié)構(gòu),下面我們就來詳解詳解Python中的array數(shù)組模塊相關(guān)使用2016-07-07Python多線程編程threading模塊使用最佳實(shí)踐及常見問題解析
這篇文章主要為大家介紹了Python多線程編程threading模塊使用最佳實(shí)踐及常見問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01