资讯专栏INFORMATION COLUMN

pythonGUI多做输入文本Text的完成

89542767 / 439人阅读

  文章主要是详细介绍了pythonGUI多做输入文本Text的控制方式,具有非常好的实用价值,希望能帮助到大家。如有误或者未考虑到真正的地区,望鼎力相助


  Text的属性wrap


  fromtkinterimport*
  root=Tk()
  root.geometry('200x300')
  te=Text(root,height=20,width=15)
  #将多做输入文本放进(pack)对话框中
  te.pack()
  #持续打开程序
  root.mainloop()

01.png

  这一输入框相对高度为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)

  

02.png

      相对高度和总宽或是20、15,只不过是属性wrap的数值NONE。那样的话,在没有任何手动式自动换行的现象,每排能够持续输入字符。假如向输入框放进文件信息,例如text、word文件,多做输入框中每排内容与文档里面的内容相同。


  #wrap=CHAR
  te=Text(root,height=20,width=15,wrap=CHAR)

03.png

  #wrap=WORD
  te=Text(root,height=20,width=15,wrap=WORD)

  

04.png

       上边就是wrap数值WORD和CHAR的差别。能够看见数值WORD时,输入框会确保标识符的完好性,而数值CHAR的时候不会。二者,每排都是会控制在15字符,只不过是自动换行时的形式不同。


  当输入框具体内容较多时,能够通过下拉列表来访问具体内容。有竖直下拉列表、水准下拉列表。


  设定竖直下拉列表


  想要的结果:在我们滚动竖直滚条时,文本信息也随之左右变化。


  importtkinterastk
  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)
  #获得文本文档里面的内容
  withopen(r'C:UsersAdministratorDesktop诗圣杜甫.txt')asa:
  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()


  实际效果图例

05.png

  建立完竖直下拉列表目标和多做输入文本目标后,应注意:


  1.yscrollcommand=s1.set,那样滚动输入框具体内容,下拉列表还会滚动


  2.s1.config(command=b1.yview),那样滚动下拉列表,输入框具体内容还会滚动。


  3.s1.pack(side=tk.RIGHT,fill=tk.Y),那样下拉列表才可以充斥着x轴方位,而不仅仅是一部分。


  设定水准下拉列表


  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()


  实际效果图例

06.png

  设定水准下拉列表会有一个事情,便是下拉列表无法显示。主要是因为,在默认设置前提下,每排的字符数会受限制,这个就用不到水准下拉列表。如果想解封,换句话说使放进的文本信息因其原先的方法自动换行,必须添加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按钮,会获得文本内容


         综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129031.html

相关文章

  • pythonGUI多列输入文本Text完成

      此篇文章主要是详细介绍了pythonGUI多列输入文本Text的控制方式,具有非常好的实用价值,希望能帮助到大家。如有误或者未考虑到真正的地区,望鼎力相助  Text的属性wrap  fromtkinterimport*   root=Tk()   root.geometry('200x300')   te=Text(root,height=20,width=15)   #将多...

    89542767 评论0 收藏0
  • 简单实现登陆注册gui界面以及打包成exe文件

    摘要:图标解决了,程序代码编写好了,接下来就是最最重要的软件打包环节了。在此,我们用打包,这是一个用于打包软件的第三方库。 新建一个data.txt文件。存用户名和密码 #!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Benjam...

    jone5679 评论0 收藏0
  • 探索发现:CSS实现中文两端对齐

    摘要:今天在搜索实现中文两端对齐的解决方法时,偶然发现了这个我遇到问题是看不到效果,无论是英文还是中文,在和下都不起作用。首先,大家要知道,是专门为英文设计的,谁叫是老外发明的呢,用来实现英文语句的两端对齐。 今天在搜索CSS实现中文两端对齐的解决方法时,偶然发现了这个hack: 我遇到问题是:看不到效果,无论是英文还是中文,在IE和chrome下都不起作用。还好在StackOverflo...

    Aomine 评论0 收藏0
  • 探索发现:CSS实现中文两端对齐

    摘要:今天在搜索实现中文两端对齐的解决方法时,偶然发现了这个我遇到问题是看不到效果,无论是英文还是中文,在和下都不起作用。首先,大家要知道,是专门为英文设计的,谁叫是老外发明的呢,用来实现英文语句的两端对齐。 今天在搜索CSS实现中文两端对齐的解决方法时,偶然发现了这个hack: 我遇到问题是:看不到效果,无论是英文还是中文,在IE和chrome下都不起作用。还好在StackOverflo...

    luffyZh 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<