最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?GUI多行輸入文本Text的實現(xiàn)

 更新時間:2022年06月28日 08:42:55   作者:LLLLLLLLLLLLIU  
這篇文章主要介紹了python?GUI多行輸入文本Text的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Text的屬性wrap

from tkinter import *
root = Tk()
root.geometry('200x300')
te = Text(root,height=20,width=15)
#將多行輸入文本放入(pack)窗口中
te.pack()
#持續(xù)運行程序
root.mainloop()

這個文本框的高度為20,寬度為15,單位為字符??梢钥吹疆?dāng)每行的內(nèi)容不會超過15字符,不斷輸入會發(fā)現(xiàn),當(dāng)所輸入的內(nèi)容超過20行,文本框會自動增加新行用于輸入新的內(nèi)容。

也就是說,在沒有明確說明的情況下,在多行文本輸入時,內(nèi)容是不受限制的,但是每行能輸入多少字符是有限制。

當(dāng)然每行能輸入的內(nèi)容也可以不受到限制,這就要說到wrap屬性。

wrap和Label和Button的wraplength屬性是有差別的。wraplength是為了完全顯示標(biāo)簽或按鈕的文本內(nèi)容,而采取多行顯示。而Text的內(nèi)容能完全顯示,wrap取不同的值。顯示的方式不一樣。

wrap可以有三個值:NONE、WORD、CHAR。

#其它的部分和上面的一樣,只是加了個wrap屬性
te = Text(root,height=20,width=15,wrap=NONE)

高度和寬度還是20、15,只不過屬性wrap的值為NONE。這樣的話,在沒有手動換行的情況,每行可以不斷輸入內(nèi)容。如果向文本框放入文件內(nèi)容,比如text、word文件,多行文本框中每行內(nèi)容和文件中的內(nèi)容一致。

#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的區(qū)別??梢钥吹街禐閃ORD時,文本框會保證字符的完整性,而值為CHAR時不會。兩者,每行都會限制在15個字符,只不過換行時的方式不一樣。

當(dāng)文本框的內(nèi)容比較多時,可以借助滾動條來瀏覽內(nèi)容。有垂直滾動條、水平滾動條。

設(shè)置垂直滾動條

想要的效果:當(dāng)我們滑動垂直滾條時,文本內(nèi)容也隨著上下變動。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
#f=tk.Frame(root)
#創(chuàng)建滾動條對象,默認(rèn)是垂直滾動條,orient=tk.VERTICAL
s1 = tk.Scrollbar(root) #滾動條是要放在窗口上,其參數(shù)為窗口對象
#創(chuàng)建多行輸入文本對象
b1 = tk.Text(root,width=20,height=5,
             yscrollcommand=s1.set)
#獲取文本文件中的內(nèi)容
with open(r'C:\Users\Administrator\Desktop\杜甫.txt') as a:
    data = a.read()
#將文本文件的內(nèi)容放入文本框中
b1.insert(tk.END,data)
s1.pack(side=tk.RIGHT,fill=tk.Y)
s1.config(command=b1.yview)
b1.pack()
#f.pack()
root.mainloop()

效果圖示

創(chuàng)建完垂直滾動條對象和多行輸入文本對象后,需要注意:

  • 1.yscrollcommand=s1.set,這樣滑動文本框的內(nèi)容,滾動條也會滑動
  • 2.s1.config(command=b1.yview),這樣滑動滾動條,文本框的內(nèi)容也會滑動。
  • 3.s1.pack(side=tk.RIGHT,fill=tk.Y),這樣滾動條才能充滿y軸方向,而不只是一小部分。

設(shè)置水平滾動條

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內(nèi)容的初始化
with open(r'C:\Users\Administrator\Desktop\杜甫.txt') as a:
    data = a.read()
#放進杜甫的《茅屋為秋風(fēng)所破歌》
b1.insert(tk.END,data)
b1.pack()
#獲得文本中的內(nèi)容
#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()

效果圖示

設(shè)置水平滾動條會出現(xiàn)一個問題,就是滾動條不顯示。這是因為,在默認(rèn)情況下,每行的字符數(shù)會有限制,這樣就用不上水平滾動條。如果要解除限制,或者說使放入的文本內(nèi)容以其原有的方式換行,需要加入wrap=NONE。

獲得文本內(nèi)容

我們知道Label、Button都有text屬性,和這兩者不同的是,Entry、Text不能用text屬性填入文本內(nèi)容,Entry使用的是textvariable屬性,Text使用insert插入文本內(nèi)容,Entry和Text的文本內(nèi)容是動態(tài)的,可以輸入更改的。

Entry和Text均可輸入文本內(nèi)容,只不過Text可以輸入多行。所以Entry沒有height屬性,而Text有。在Entry和Text輸入文本內(nèi)容后,可以用get()獲得字符串形式的文本內(nèi)容。

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內(nèi)容的初始化
with open(r'C:\Users\Administrator\Desktop\杜甫.txt') as a:
    data = a.read()
#放進杜甫的《茅屋為秋風(fēng)所破歌》
b1.insert(tk.END,data)
b1.pack()
#獲得文本中的內(nèi)容
#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的回調(diào)函數(shù)
def pri1():
    print(b1.get(1.0, 5.0), type(b1.get(1.4, 3.5)))
#由于文本內(nèi)容可以隨時變化,button獲得最新的文本內(nèi)容
button = tk.Button(root,text='button',command=pri1)
button.pack()
root.mainloop()

點擊Button按鈕,會獲得文本內(nèi)容

我們這里截取的是一段。每點擊一次按鈕,獲取一次文本內(nèi)容。所以創(chuàng)建Button按鈕可以獲取文本當(dāng)前的內(nèi)容。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python操作RabbitMQ服務(wù)器消息隊列的遠(yuǎn)程結(jié)果返回

    詳解Python操作RabbitMQ服務(wù)器消息隊列的遠(yuǎn)程結(jié)果返回

    RabbitMQ是一款基于MQ的服務(wù)器,Python可以通過Pika庫來進行程序操控,這里我們將來詳解Python操作RabbitMQ服務(wù)器消息隊列的遠(yuǎn)程結(jié)果返回:
    2016-06-06
  • Pytorch對Himmelblau函數(shù)的優(yōu)化詳解

    Pytorch對Himmelblau函數(shù)的優(yōu)化詳解

    今天小編就為大家分享一篇Pytorch對Himmelblau函數(shù)的優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Django的開發(fā)步驟原來是這樣的

    Django的開發(fā)步驟原來是這樣的

    這篇文章主要為大家詳細(xì)介紹了Django的開發(fā)步驟,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • python中time庫的實例使用方法

    python中time庫的實例使用方法

    在本篇文章里的是關(guān)于python中time庫的實例使用方法以及相關(guān)知識點,有需要的朋友們可以學(xué)習(xí)下。
    2019-10-10
  • Python pickle模塊進行序列化的實現(xiàn)示例

    Python pickle模塊進行序列化的實現(xiàn)示例

    pickle模塊是一個用于實現(xiàn)數(shù)據(jù)序列化與反序列化的強大工具,本文就來介紹一下Python pickle模塊進行序列化的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • python多進程實現(xiàn)文件下載傳輸功能

    python多進程實現(xiàn)文件下載傳輸功能

    這篇文章主要為大家詳細(xì)介紹了python多進程實現(xiàn)文件下載傳輸功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • tensorflow之讀取jpg圖像長和寬實例

    tensorflow之讀取jpg圖像長和寬實例

    這篇文章主要介紹了tensorflow之讀取jpg圖像長和寬實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 關(guān)于python 跨域處理方式詳解

    關(guān)于python 跨域處理方式詳解

    這篇文章主要介紹了關(guān)于python 跨域處理方式詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 如何在Python中進行異常處理

    如何在Python中進行異常處理

    這篇文章主要介紹了如何在Python中進行異常處理,Python中使用用異常對象(exception object)表示異常情況,當(dāng)程序運行遇到錯誤后,就會觸發(fā)發(fā)異常,下文關(guān)于異常處理的相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Python文件讀寫保存操作的示例代碼

    Python文件讀寫保存操作的示例代碼

    這篇文章主要介紹了Python文件讀寫保存操作的示例代碼,實現(xiàn)了單個文件和多文件的讀寫保存操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09

最新評論

桓仁| 瑞昌市| 吉隆县| 庄河市| 安吉县| 东兰县| 新源县| 阿巴嘎旗| 周至县| 大洼县| 南皮县| 如东县| 阜平县| 温宿县| 甘泉县| 潼南县| 丰城市| 鄂温| 绥化市| 达日县| 吉木乃县| 沂源县| 澎湖县| 和硕县| 奉化市| 格尔木市| 宁阳县| 逊克县| 天峨县| 呼伦贝尔市| 汝城县| 报价| 措勤县| 寿阳县| 滕州市| 拉萨市| 广东省| 宁晋县| 龙口市| 株洲市| 武清区|