Tkinter自學(xué)06:Entry和Text組件

Entry和Text組件都是可接收用戶輸入的輸入框組件辖源,區(qū)別是Entry是單行輸入框組件勋锤,Text是多行輸入框組件痘番,而且Text可以為不同的部分添加不同的格式伊履,甚至是響應(yīng)事件。

一扣唱、Entry組件

1.Entry的參數(shù)

下面是Entry的參數(shù):

參數(shù)名 說明
bg或background 背景色彩
borderwidth或bd 邊界寬度藕坯,默認(rèn)是2像素
command 當(dāng)用戶更改內(nèi)容時,會自動執(zhí)行此函數(shù)
cursor 當(dāng)鼠標(biāo)光標(biāo)在文本框上時的光標(biāo)形狀
exportselection 如果執(zhí)行選取時噪沙,所選取的字符串會自動輸出至剪貼板炼彪,如果想要避免,可以設(shè)置exportselection=0
fg或foreground 前景色彩
font 字形
height 高正歼,單位是字符高
highlightbackground 當(dāng)文本框取得焦點時的背景顏色
highlightcolor 當(dāng)文本框取得焦點時的顏色
justify 當(dāng)含多行文字時辐马,最后一行的對齊方式
relief 默認(rèn)是relief=FLAT,可由此控制文字外框
selectbackground 被選取字符串的背景色彩
selectborderwidth 選取字符串時的邊界寬度局义,預(yù)設(shè)是1
selectfroeground 被選取字符串的前景色彩
show 顯示輸入字符喜爷,例如冗疮,show='*'表示顯示星號,常用于輸入密碼字段
state 輸入狀態(tài)檩帐,默認(rèn)是NORMAL表示可以輸入术幔,DISABLE則表示無法輸入
textvariable 文字變量
width 寬,單位是字符寬
xscrollcommand 在x軸使用滾動條
from tkinter import *

root = Tk()

lab1 = Label(root,text="賬號")
lab2 = Label(root,text="密碼")
ent1 = Entry(root)
ent2 = Entry(root,show="*")

lab1.grid(row=0,column=0)
lab2.grid(row=1,column=0)
ent1.grid(row=0,column=1)
ent2.grid(row=1,column=1)

root.mainloop()
基本界面.png

用到了show來隱藏所輸入的內(nèi)容.png

2. Entry的方法

下面列出了常用的Entry方法湃密。

方法名 說明
get() 獲取文本框中的內(nèi)容
insert() 改變文本框中的內(nèi)容
delete() 刪除指定文本框中的部分內(nèi)容
  • get()方法可以直接使用不做說明
  • insert()方法使用時需要指定插入的文本索引
    insert(index,str)index是插入是的索引诅挑,從0開始,1個字符算1個索引號泛源;str是需要插入的字符串拔妥。
  • delete()方法使用時需要指定刪除的字符起始和結(jié)束索引號
    delete(self,first,last=None)刪除的是Entry內(nèi)的從第first字符到第last字符間的內(nèi)容,如果要刪除整個字符串可以使用delete(0,END)

二俩由、Text組件

Text組件是多行文本框毒嫡,實際上Text除了能輸入文本癌蚁,還能插入圖片幻梯,設(shè)置文本內(nèi)容的格式,可以看作一個功能強大的“富文本”編輯組件努释。

1.Text的參數(shù)

列出如下:

參數(shù)名 說明
bg或background 背景色彩
borderwidth或bd 邊界寬度碘梢,默認(rèn)是2像素
cursor 當(dāng)鼠標(biāo)光標(biāo)在復(fù)選框上時的光標(biāo)形狀
exportselection 如果執(zhí)行選擇操作時,所選擇的字符串會自動輸出至剪貼板伐蒂,如果想要避免如此可以設(shè)置exportselection=0
fg或foreground 字形色彩
font 字形
height 高煞躬,單位是字符高,實際高度會視字符高度而定
highlightbackground 當(dāng)文本框取得焦點時的背景顏色
highlightcolor 當(dāng)文本框取得焦點時的顏色
highlightthickness 取得焦點時的厚度逸邦,默認(rèn)值是1
insertbackground 插入光標(biāo)的顏色恩沛,默認(rèn)是黑色
insertborderwidth 圍繞插入游標(biāo)的3D厚度,默認(rèn)是0
padx Text左/右框與文字最左/最右的間距
pady Text上/下框與文字最上/最下的間距
relief 默認(rèn)是relief=SUNKEN缕减,可由此控制文字外框
selectbackground 被選取字符串的背景色彩
selectborderwidth 選取字符串時的邊界厚度雷客,默認(rèn)值是1
selectforeground 被選取字符串的前景色彩
state 輸入狀態(tài),默認(rèn)是NORMAL桥狡,表示可以輸入搅裙,DISABLED則是無法編輯
tab 可設(shè)置按Tab鍵時,如何定位插入點
width Text的寬裹芝,單位是字符寬
wrap 可控制某行文字太長時的處理部逮,默認(rèn)是wrap=CHAR,當(dāng)某行文字太長時嫂易,可從字符做斷行兄朋;當(dāng)wrap=WORD時,只能從字做斷行
xscrollcommand 在x軸使用滾動條
yscrollcommand 在y軸使用滾動條

可以看到Text的參數(shù)大部分與Entry的參數(shù)一樣怜械,只是多了一部分對框內(nèi)文本進行操作時的參數(shù)以及多行顯示時需要用到的功能蜈漓。

2.Text的方法

(1)insert()方法:在指定的位置插入字符串

用法與Entry的insert()一樣穆桂,語法為:
insert(index,str):在index的位置使用INSERT或者END,則直接插入文本末端位置融虽。
需要注意的是享完,Text的索引與Entry的不一樣
下面是Text的索引常用參數(shù)

索引方式 說明
row.column 行號從1開始,列號從0開始.比如:1.0代表第1行第1列有额;3.7代表第3行第8列
INSERT 目前插入點的位置
CURRENT 光標(biāo)目前位置相對于字符的位置
END 緩沖區(qū)最后一個字符后的位置
“+count chars” count是數(shù)字般又,例如,“+2c”索引往后移動兩個字符巍佑。
“-count chars” count是數(shù)字茴迁,例如,“-2c”索引往前移動兩個字符萤衰。
(2)get()方法

Text對象的get( )方法可以取得目前所選中的文字堕义。
Text對象會將所選文字的
起始索引放在SEL_FIRST,
結(jié)束索引放在SEL_LAST
將SEL_FIRST和SEL_LAST當(dāng)作get( )的參數(shù)脆栋,就可以獲得目前所選的文字倦卖。

(3)delete()方法

與Entry的delete()方法類似,區(qū)別在于索引的表示方法不一樣椿争。

(4)marks書簽

在編輯文件時怕膛,可以在文件特殊位置建立書簽(Marks),方便查詢秦踪。書簽是無法顯示的褐捻,但會在編輯系統(tǒng)內(nèi)被記錄。如果書簽內(nèi)容被刪除椅邓,則此書簽也將自動被刪除柠逞。
其實在tkinter內(nèi)默認(rèn)有兩個書簽:INSERT和CURRENT。
下面是書簽的用法:

書簽方法 說明
index(mark) 傳回指定書簽的line和column
mark_names( ) 傳回這個Text對象所有的書簽
mark_set(mark,index) 在指定的index位置設(shè)置書簽
mark_unset(mark) 取消指定書簽設(shè)置
(5)tags標(biāo)簽

標(biāo)簽(Tags)是指一個區(qū)域文字景馁,然后我們可以為這個區(qū)域取一個名字板壮,這個名字稱作標(biāo)簽,可以使用此標(biāo)簽名字代表這個區(qū)域文字裁僧。
有了標(biāo)簽后个束,我們可以針對此標(biāo)簽做更進一步的工作,例如聊疲,將字形茬底、色彩等應(yīng)用在此標(biāo)簽上。

標(biāo)簽方法 說明
tag_add(tagname,startindex[,endindex] …) 將startindex和endindex間的文字命名為tagname標(biāo)簽
tag_config(tagname,options, … ) 可以為標(biāo)簽執(zhí)行特定的編輯获洲,或動作綁定阱表。① background:背景顏色。② borderwidth:文字外圍厚度,默認(rèn)是0最爬。③ font:字形涉馁。④ foreground:前景顏色。⑤ justify:對齊方式爱致,默認(rèn)是LEFT烤送,也可以是RIGHT或CENTER。⑥ overstrike:如果是True糠悯,加上刪除線帮坚。⑦ underline:如果是True,加上下畫線互艾。⑧ wrap:當(dāng)使用wrap模式時试和,可以使用NONE、CHAR或WORD
tag_delete(tagname) 刪除此標(biāo)簽纫普,同時移除此標(biāo)簽特殊的編輯或綁定
tag_remove(tagname[,startindex[,endindex]] … ) 刪除標(biāo)簽阅悍,但是不移除此標(biāo)簽特殊的編輯或綁定

除了可以使用tag_add( )自行定義標(biāo)簽外,系統(tǒng)還有一個內(nèi)建標(biāo)簽SEL昨稼,代表所選取的區(qū)間节视。
了解了標(biāo)簽的概念后,我們就可以針對特定區(qū)間文字或所選取的文字做編輯了悦昵。

(6)Cut/Copy/Paste功能

編輯文件時剪切/復(fù)制/粘貼(Cut/Copy/Paste)是很常用的功能肴茄,這些功能其實已經(jīng)被內(nèi)建在tkinter中了晌畅。
使用方法:

text.event_generate("<<Cut>>")
text.event_generate("<<Copy>>")
text.event_generate("<<Paste>>")
(7)復(fù)原與重復(fù)(Redo 與 Undo)

Text控件有一個簡單復(fù)原(undo)和重做(redo)的機制但指,這個機制可以應(yīng)用于文字刪除(delete)和文字插入(insert)。
Text控件在默認(rèn)環(huán)境下沒有開啟這個機制抗楔,如果要使用這個機制棋凳,可以在Text( )方法內(nèi)增加undo=True參數(shù)。

text = Text(root,undo=True)
添加了這個參數(shù)以后连躏,
就可以用text對象調(diào)用edit_undo( )和edit_redo( )方法剩岳,
這個方法會自動執(zhí)行Undo和Redo動作。
(8)查找文字search( )

在Text控件內(nèi)可以使用search( )方法查找指定的字符串入热,這個方法會傳回找到第一個指定字符串的索引位置拍棕。
假設(shè)Text控件的對象是text,它的語法如下勺良。

pos=text.search(key, startindex, endindex)
參數(shù)說明:
(1)pos:傳回所找到的字符串的索引位置绰播,如果查找失敗則傳回空字符串。
(2)key:所查找的字符串尚困。
(3)startindex:查找起始位置蠢箩。
(4)endindex:查找結(jié)束位置,如果查找到文檔最后可以使用END。
(9)插入圖片image_create()方法

Text有一個image_create()方法谬泌,可以實現(xiàn)插入PhotoImage對象的圖片滔韵。
使用方法:
text.image_create(self,index,cnf={},**kw)

三、默認(rèn)含滾動條的ScrolledText組件

在tkinter.scrolledtext模塊內(nèi)有ScrolledText控件掌实,這是一個默認(rèn)含有滾動條的Text控件陪蜻,使用時可以先導(dǎo)入此模塊,執(zhí)行時就可以看到滾動條贱鼻。
使用方法:

from tkinter.scrolledtext import ScrolledText
root = Tk()
text = ScrolledText(root)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末囱皿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子忱嘹,更是在濱河造成了極大的恐慌嘱腥,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拘悦,死亡現(xiàn)場離奇詭異齿兔,居然都是意外死亡,警方通過查閱死者的電腦和手機础米,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門分苇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人屁桑,你說我怎么就攤上這事医寿。” “怎么了蘑斧?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵靖秩,是天一觀的道長。 經(jīng)常有香客問我竖瘾,道長沟突,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任捕传,我火速辦了婚禮惠拭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庸论。我一直安慰自己职辅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布聂示。 她就那樣靜靜地躺著域携,像睡著了一般。 火紅的嫁衣襯著肌膚如雪催什。 梳的紋絲不亂的頭發(fā)上涵亏,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天宰睡,我揣著相機與錄音,去河邊找鬼气筋。 笑死拆内,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宠默。 我是一名探鬼主播麸恍,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搀矫!你這毒婦竟也來了编丘?” 一聲冷哼從身側(cè)響起奏篙,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后截汪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體循狰,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡功氨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年祟滴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绿饵。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡欠肾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拟赊,到底是詐尸還是另有隱情刺桃,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布吸祟,位于F島的核電站瑟慈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏欢搜。R本人自食惡果不足惜封豪,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一谴轮、第九天 我趴在偏房一處隱蔽的房頂上張望炒瘟。 院中可真熱鬧,春花似錦第步、人聲如沸疮装。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽廓推。三九已至,卻和暖如春翩隧,著一層夾襖步出監(jiān)牢的瞬間樊展,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留专缠,地道東北人雷酪。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像涝婉,于是被迫代替她去往敵國和親哥力。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容