• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 【Python入門級教程】Python GUI界面教學(03)——Text控件

    標簽: python


    這次時Text、Entry控件的教程。

    1.Text。

    1.Text的簡介。

    Text一般用于展示文本、輸入文本。在編寫代碼時,需要將其他控件與文本一起展示時可以使用Text。

    2.怎么創建Text?

    只需要像這樣:

    class tk:#引入
    	from tkinter import Tk,Text
    root=tk.Tk()#窗口
    #創建Text
    text=tk.Text(root)
    text.pack(fill='both',expand=1)#fill指X、Y軸都填充,expand指是否占據父窗口(master)的剩余部分,這里為True
    
    root.mainloop()#循環
    

    效果
    就是這個樣子。

    3.Text的選項。

    選項功能
    background設置背景顏色,可以是顏色單詞也可以是16進制數‘,"bg"是它的縮寫。
    selectforeground設置文本被選中時的前景色,可以是顏色單詞也可以是16進制數‘。
    foreground設置前景色,可以是顏色單詞也可以是16進制數‘,"fg"是它的縮寫。
    selectbackground設置文本被選中時的背景色,可以是顏色單詞也可以是16進制數‘。
    insertbackground設置光標的顏色。
    insertborderwidth設置光標寬度。
    insertofftime設置光標消失的時間,單位時毫秒。
    insertontime設置光標出現的時間,單位時毫秒。
    undo是否支持撤銷,默認為False。
    maxundo設置最大撤銷次數。
    setgrid設置是否使用grid布局。
    takefocus設置是否能將焦點轉移至Text。
    wrap設置換行方式,默認是"char",可選"none"(不自動換行)、“word”(按空格換行)。
    xscrollcommand設置X軸滾動條在Text的命令(?),值為滾動條的set方法,不帶括號。
    yscrollcommand設置Y軸滾動條在Text的命令(?),值為滾動條的set方法,不帶括號。
    relief設置邊框樣式,例如"flat",“groove”,“ridge”,這些英文在Tkinter中有專門的變量,例如groove就是tk.GROOVE,在傳參時可以寫成relief=tk.GROOVE
    font字體,提供一個元組,如()。
    bd邊框像素,默認是2。
    heightText的高度。
    widthText的長度。
    highlightcolor高亮的顏色。
    justify對齊方式,有"center",“left”,“right”,默認是"center"。
    padx設置x軸方向的內邊距。
    pady設置y軸方向的內邊距。
    state設置Text狀態,可選"normal"、“disabled”。
    tabs設置按下tab后空出的長度,當傳入整形數時,單位時像素。當值為字符串+上"c"("_c")時單位時厘米。

    4.獲取Text的內容。

    1.get方法。

    text.get(index1,index2)
    

    通過get方法返回Text中純文本的內容,index1為開始,index2為結束,若要獲取全部內容即為

    text.get('0.0','end')
    

    2.dump方法。

    textdump(index1, index2=None, command=None, **kw)
    

    dump方法返回的值就十分詳細的,連tag都給你返回出來。
    index1、index2的功能和get的一樣。
    例子:

    class tk:#引入
    	from tkinter import Tk,Text,Button
    root=tk.Tk()#窗口
    #創建Text
    text=tk.Text(root,tabs='1')
    text.pack(fill='both',expand=1)#fill指X、Y軸都填充,expand指是否占據父窗口(master)的剩余部分,這里為True
    #獲得內容
    tk.Button(root,text='CLICK',command=lambda v=0:print(text.dump('0.0','end'))).pack(fill='x')
    
    root.mainloop()#循環
    

    示例效果1
    示例效果2
    返回的列表的元組的第一項([0])是類型,類型有以下幾種:

    名稱類型
    text平平無奇的正常文本。
    tagontag的開始,第二項是tag的名稱,第三項則是tag的起始位置。
    tagofftag的結束,第二項是tag的名稱,第三項則是tag的結束位置。
    markmark的位置,第二項是名稱,第三項是位置。
    window控件,第二項是master和控件的類型,第三項是索引。
    image圖片,第二項是類型,第三項是索引。

    5.Text撤銷文本。

    在此之前,undo選項必須是True,否則無法撤銷。

    方法作用
    edit_reset()清空存放操作記錄的棧。
    edit_undo()撤銷。
    edit_redo()恢復。
    edit_separator()插入分隔符。

    如果undo操作達到極限但還是繼續undo時,Tkinter會報錯。
    Tkinter默認時每一行末尾插入一個分隔符,這會導致撤銷時整行都撤銷,所以綁定一個時間用于插入分隔符,防止這個現象發生:

    text.bind('<KeyPress>',lambda v=0:text.edit_separator())
    

    6.移動Text的光標。

    使用text的mark_set方法設置光標位置,例如:

    text.mark_set('insert',0.0)
    

    即為將光標設置到第0(1)行的第0(1)個字符。

    7.獲得Text的光標的位置。

    使用text的index方法獲得,例如:

    text.index('insert')
    

    index中間的參數可以換成其它的,例如tag名稱。

    8.滾動Text到指定位置。

    使用see方法,例如:

    text.see("end")
    

    滾動Text到最后一個字符。

    9.將指定區域的所有內容替換為指定字符串。

    使用replace方法。

    text.replace(index1,index2=None,char,**kw)
    

    index1、index2不用多說了,char為替換的字符。

    10.搜索文本。

    text.search(pattern, index, stopindex=None, forwards=None, backwards=None, exact=None, regexp=None, nocase=None, count=None)
    

    regexp若為為True,則 pattern 被解釋為Tcl格式的正則表達式、
    nocass若為True則搜索時忽略大小寫。
    count需要被設置為IntVar,用于存放搜索到的數量。

    11.Tags。

    Tag可以理解為在Text中的標記。

    方法作用
    tag_config(tagName,cnf=None,**kw)設置tag的屬性,如果tag不存在則創建新的tag但不設置索引。
    tag_configure(tagName,cnf=None,**kw)和tag_config一樣。
    tag_delete(*tagNames)刪除tag。
    tag_bind(tagName, sequence, func, add=None)為指定的tag綁定事件。
    tag_cget(tagName, option)返回指定tag的option選項的值。
    tag_lower(tagName, belowThis=None)降低tag的優先級,若belowThis不為空則降至belowThis下面。
    tag_raise(tagName, aboveThis=None)升高tag的優先級,若aboveThis不為空則升至其上。
    tag_ranges(tagName)以列表的方式返回tag的文本。
    tag_remove(tagName, index1, index2=None)刪除index1到index2的所有tagName。
    tag_unbind(tagName, sequence, funcid=None)取消綁定tag事件。

    12.Text嵌入控件。

    使用window_create方法。

    text.window_create(index, **options)
    

    例如:

    text.window_create('end',window=Tk_obj)
    

    Tk_obj為Tkinter控件,master為text。

    13.Text返回所有window。

    使用window_names方法即可。

    text.window_names()
    

    14.bind與unbind。

    綁定與取消綁定事件。
    bind(sequence,func=None)

    15.xview與yview。

    一般用于給滾動條(scrollbar)的command選項賦值。

    scrollbar1['command']=text.xview
    scrollbar2['command']=text.yview
    

    xview用于X軸滾動,如果要使用text的wrap選項應為"none"。
    xview用于Y軸滾動。

    16.插入文本。

    使用insert方法。

    text.insert(index,chars,*args)
    

    insert時可以附加tag,只需要在chars后面填寫。
    插入時text的state必須是normal(正常)。

    17.后期設置Text選項。

    使用config方法即可。

    text.config(name=value)
    

    替換name和value即可,同樣這還可以延長,config可以設置多個選項。

    text.config(state='normal',wrap='none')
    

    上面代碼就是設置了text的狀態為正常及從不自動換行。
    只要是合法的參數和選項都能修改。

    18.mark_set。

    設置mark,例如insert。

    2.尾聲。

    下一次是Entry的更新,Text的內容太多了。

    版權聲明:本文為weixin_48178135原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_48178135/article/details/111081578

    智能推薦

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    猜你喜歡

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    基于TCP/IP的網絡聊天室用Java來實現

    基于TCP/IP的網絡聊天室實現 開發工具:eclipse 開發環境:jdk1.8 發送端 接收端 工具類 運行截圖...

    19.vue中封裝echarts組件

    19.vue中封裝echarts組件 1.效果圖 2.echarts組件 3.使用組件 按照組件格式整理好數據格式 傳入組件 home.vue 4.接口返回數據格式...

    精品国产乱码久久久久久蜜桃不卡