本篇內(nèi)容主要講解“Tkinter文本編輯控件Text怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Tkinter文本編輯控件Text怎么用”吧!
創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了成都網(wǎng)站制作、成都做網(wǎng)站服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
不同于Entry控件只能支持一行輸入,文本編輯控件Text除了支持多行顯示和編輯之外,同時(shí)支持撤銷和重做,以及對(duì)于不同的部分設(shè)定不同的格式。
Enbale按鈕用于切換Text控件是否允許用戶的編輯操作。由于Text的表示顏色不會(huì)因?yàn)闋顟B(tài)的不同而不同,因此代碼同時(shí)會(huì)調(diào)整Text控件的表示顏色。
# change state function.def change_state(): state = text.cget('state') if state=='disabled': text.config(state='normal') text.config(background='#a0ffa0') else: text.config(state='disabled') text.config(background='#efefef')# change state button.eb = Button(root,text="Enable", width=8, command=change_state)eb.grid(row=0, column=0, sticky=E+W)
Delete按鈕用于刪除選擇內(nèi)容。需要注意的是Text控件取得選擇內(nèi)容的方式和Entry不同。
# delete selection.
def delete_selection():
try:
sel_from = text.index(SEL_FIRST)
sel_to = text.index(SEL_LAST)
# delete the selection.
text.delete(sel_from, sel_to)
except TclError:
pass
# delete selection button.
db = Button(root,text="Delete", width = 8, command=delete_selection)
db.grid(row=0, column=1, sticky=E+W)
Undo和Redo按鈕直接使用Text的方法即可實(shí)現(xiàn)撤銷和重做功能。代碼中使用了lambda表達(dá)式以簡(jiǎn)化調(diào)用。
# undo buttonundo = Button(root, text='Undo', width = 8, command=lambda:text.edit_undo())undo.grid(row=0, column = 2, sticky=E+W)#redo buttonredo = Button(root, text='Redo', width = 8, command=lambda:text.edit_redo())redo.grid(row=0, column = 3, sticky=E+W)
設(shè)置格式的按鈕一共有四個(gè),它們共用一套處理邏輯,各個(gè)按鈕使用不同的參數(shù)調(diào)用同一個(gè)format函數(shù)。
# create fonts
fonts = [
Font(family='SimHei', size=20, weight=BOLD),
Font(family='SimHei', size=16),
Font(family='SimSun', size=12, weight=BOLD),
Font(family='SimSun', size=12)
]
# delete selection.
def format(index):
tag_name = 'Format' + str(index)
try:
sel_from = text.index(SEL_FIRST)
sel_to = text.index(SEL_LAST)
for name in text.tag_names():
text.tag_remove(name, sel_from, sel_to)
text.tag_add(tag_name, sel_from, sel_to)
# set format at first time。
range_count = len(text.tag_ranges(tag_name))
if range_count == 2:
text.tag_config(tag_name, font=fonts[index])
except TclError:
pass
# delete selection button.
for i in range(0, 4):
fb = Button(root,
text="Format" + str(i),
width = 8,
command=lambda v=i : format(v))
fb.grid(row=1, column=i, sticky=E+W)
代碼中使用了tag_remove、tag_add、tag_config和tag_names方法實(shí)現(xiàn)了簡(jiǎn)單的格式設(shè)定功能。
最后構(gòu)建Text控件。需要注意的是,undo屬性的值被指定為True,以令撤銷和重做功能有效。
# create text widget.text = Text(root, undo=True, background="#a0ffa0", foreground="#000000", height = 10)text.grid(row=2 , column=0, columnspan=8)
一個(gè)比較遺憾的事實(shí)是,設(shè)定文本格式的動(dòng)作并沒有包含在重做和撤銷的處理范圍內(nèi)。
到此,相信大家對(duì)“Tkinter文本編輯控件Text怎么用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
名稱欄目:Tkinter文本編輯控件Text怎么用
當(dāng)前網(wǎng)址:http://www.rwnh.cn/article44/gpogee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、定制網(wǎng)站、Google、品牌網(wǎng)站設(shè)計(jì)、服務(wù)器托管、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)