<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
from tkinter import * root = Tk() root.geometry('200x300') te = Text(root,height=20,width=15) #將多行輸入文字放入(pack)視窗中 te.pack() #持續執行程式 root.mainloop()
這個文字方塊的高度為20,寬度為15,單位為字元。可以看到當每行的內容不會超過15字元,不斷輸入會發現,當所輸入的內容超過20行,文字方塊會自動增加新行用於輸入新的內容。
也就是說,在沒有明確說明的情況下,在多行文字輸入時,內容是不受限制的,但是每行能輸入多少字元是有限制。
當然每行能輸入的內容也可以不受到限制,這就要說到wrap屬性。
wrap和Label和Button的wraplength屬性是有差別的。wraplength是為了完全顯示標籤或按鈕的文字內容,而採取多行顯示。而Text的內容能完全顯示,wrap取不同的值。顯示的方式不一樣。
wrap可以有三個值:NONE、WORD、CHAR。
#其它的部分和上面的一樣,只是加了個wrap屬性 te = Text(root,height=20,width=15,wrap=NONE)
高度和寬度還是20、15,只不過屬性wrap的值為NONE。這樣的話,在沒有手動換行的情況,每行可以不斷輸入內容。如果向文字方塊放入檔案內容,比如text、word檔案,多行文字方塊中每行內容和檔案中的內容一致。
#wrap=CHAR te = Text(root,height=20,width=15,wrap=CHAR)
#wrap=WORD te = Text(root,height=20,width=15,wrap=WORD)
上面就是wrap值為WORD和CHAR的區別。可以看到值為WORD時,文字方塊會保證字元的完整性,而值為CHAR時不會。兩者,每行都會限制在15個字元,只不過換行時的方式不一樣。
當文字方塊的內容比較多時,可以藉助卷軸來瀏覽內容。有垂直卷軸、水平卷軸。
想要的效果:當我們滑動垂直滾條時,文字內容也隨著上下變動。
import tkinter as tk root=tk.Tk() root.geometry('300x240') #f=tk.Frame(root) #建立卷軸物件,預設是垂直卷軸,orient=tk.VERTICAL s1 = tk.Scrollbar(root) #卷軸是要放在視窗上,其引數為視窗物件 #建立多行輸入文字物件 b1 = tk.Text(root,width=20,height=5, yscrollcommand=s1.set) #獲取文字檔案中的內容 with open(r'C:UsersAdministratorDesktop杜甫.txt') as a: data = a.read() #將文字檔案的內容放入文字方塊中 b1.insert(tk.END,data) s1.pack(side=tk.RIGHT,fill=tk.Y) s1.config(command=b1.yview) b1.pack() #f.pack() root.mainloop()
效果圖示
建立完垂直卷軸物件和多行輸入文字物件後,需要注意:
yscrollcommand=s1.set
,這樣滑動文字方塊的內容,卷軸也會滑動s1.config(command=b1.yview)
,這樣滑動卷軸,文字方塊的內容也會滑動。s1.pack(side=tk.RIGHT,fill=tk.Y)
,這樣卷軸才能充滿y軸方向,而不只是一小部分。import tkinter as tk root=tk.Tk() root.geometry('300x240') #f=tk.Frame(root) s1 = tk.Scrollbar(root,orient=tk.HORIZONTAL) b1 = tk.Text(root,width=20,height=5,wrap=tk.NONE, xscrollcommand=s1.set,cursor='circle', selectbackground='yellow', selectforeground='blue') #text內容的初始化 with open(r'C:UsersAdministratorDesktop杜甫.txt') as a: data = a.read() #放進杜甫的《茅屋為秋風所破歌》 b1.insert(tk.END,data) b1.pack() #獲得文字中的內容 #print(b1.get(1.4,3.5),type(b1.get(1.4,3.5))) s1.pack(side=tk.BOTTOM,fill=tk.X) s1.config(command=b1.xview) #f.pack() root.mainloop()
效果圖示
設定水平卷軸會出現一個問題,就是卷軸不顯示。這是因為,在預設情況下,每行的字元數會有限制,這樣就用不上水平卷軸。如果要解除限制,或者說使放入的文字內容以其原有的方式換行,需要加入wrap=NONE。
我們知道Label、Button都有text屬性,和這兩者不同的是,Entry、Text不能用text屬性填入文字內容,Entry使用的是textvariable屬性,Text使用insert插入文字內容,Entry和Text的文字內容是動態的,可以輸入更改的。
Entry和Text均可輸入文字內容,只不過Text可以輸入多行。所以Entry沒有height屬性,而Text有。在Entry和Text輸入文字內容後,可以用get()獲得字串形式的文字內容。
import tkinter as tk root=tk.Tk() root.geometry('300x240') #f=tk.Frame(root) s1 = tk.Scrollbar(root,orient=tk.HORIZONTAL) b1 = tk.Text(root,width=20,height=5,wrap=tk.NONE, xscrollcommand=s1.set,cursor='circle', selectbackground='yellow', selectforeground='blue') #text內容的初始化 with open(r'C:UsersAdministratorDesktop杜甫.txt') as a: data = a.read() #放進杜甫的《茅屋為秋風所破歌》 b1.insert(tk.END,data) b1.pack() #獲得文字中的內容 #print(b1.get(1.4,3.5),type(b1.get(1.4,3.5))) s1.pack(side=tk.BOTTOM,fill=tk.X) s1.config(command=b1.xview) #f.pack() #button的回撥函數 def pri1(): print(b1.get(1.0, 5.0), type(b1.get(1.4, 3.5))) #由於文字內容可以隨時變化,button獲得最新的文字內容 button = tk.Button(root,text='button',command=pri1) button.pack() root.mainloop()
點選Button按鈕,會獲得文字內容
我們這裡擷取的是一段。每點選一次按鈕,獲取一次文字內容。所以建立Button按鈕可以獲取文字當前的內容。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45