Day24 用python写UI-聊聊Text(一)

今天放假好开心,睡超饱的ヾ(^▽^))), 但是还是要起床发文啦~
Text顾名思义就是可以输入文字,键一个框框,就可以把文字输入到里面了。

♠♣今天的文章大纲♥♦

  • Text基本参数
  • Text与卷轴设计
  • 字形设定

Text基本参数

语法:Text(master,options...)

参数 内容
bg或background 背景色彩。
borderwidth 或bd 边界宽度预设是2个像素。
cursor 当滑鼠游标在核取方块时的游标外形。
exportselection 如果执行选取时所选取的字串会自动输出至剪贴簿,如果想要避免如此可以设定 exportselection=0。
fg或 foreground 字型色彩。
font 字型。
height 高,单位是字元高,实际高度会视字元数量而定。
highlightbackground 当文字方块取得焦点时的背景颜色。
highlightcolor 当文字方块取得焦点时的颜色。
highlightthickness 预设是1,取得焦点时的厚度。
insertbackground 预设是黑色,插入游标的颜色。
insertborderwidth 预设是0,围绕插入游标的 3-D 厚度。
padx Text 左右框与文字最左最右的间距。
pady Text 上下框与文字最上最下的间距。
relief 预设是relief=SUNKEN可由此控制文字外框。
selectbackground 被选取字串的背景色彩。
selectborderwidth 选取字串时的边界厚度,预设是1。
selectforeground 被选取字串的前景色彩。
state 输入状态,预设是 NORMAL ,DISABLED 则是无法编辑。
tab 可设定按Tab 键时,如何定位插入点。
width Text 的宽,单位是字元费。
wrap 预设是wrap=CHAR,当某行太长时可从字元断行。当 wrap=WORD 时只能从字作断行。
xerollcommand 在x轴使用卷轴。
ycrollcommand 在y轴使用卷轴。

简单的先建立一个Text

import tkinter as tk

root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x100')

text=tk.Text(root,height=5,width=30)
text.pack()

root.mainloop()

执行结果⬇⬇⬇
会先是一个空白的框框,可以输入自己想打的文字。
https://ithelp.ithome.com.tw/upload/images/20211009/20140047PSR8TP0zVE.png


Text与卷轴设计

用insert插入文字,这边用最近很喜欢的歌词XDD,有人知道是什麽歌吗?

import tkinter as tk

root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x300')

ysc=tk.Scrollbar(root)
text=tk.Text(root,height=20,width=30)
ysc.pack(side='right',fill='y')
text.pack()
ysc.config(command=text.yview)
text.config(yscrollcommand=ysc.set)

ins="""散步纽约街头
快要吻的时候
闪耀你唇上的温柔
怎麽忽然变成电钻钻头
一楼四楼七楼 Stereo大合奏
成年以来一直睡不够
干嘛休假楼上总有人装修
一觉~睡到自然醒过来
不管这个胡闹时代到底有多坏
只想在潜意识第六层内
没有心情不出来
说来~这个事情也奇怪
只要三步之内有你在
我拳头就放开 睡得像小孩
有人按错门铃
有人打错电话
有人制造喧哗的八卦
麻烦大家让我静一下好吗
一觉~睡到自然醒过来
不管这个胡闹时代到底有多坏
只想在潜意识第六层内
没有心情不出来
说来~这个事情也奇怪
只要三步之内有你在
我拳头就放开 睡得像小孩
一觉~睡到自然醒过来
不管这个胡闹时代到底有多坏
世界变得再快是非成败
一旦抱你入怀 置身事外
一觉~睡到自然醒过来
不管这个胡闹时代到底有多坏
只想在潜意识第六层内
没有心情不出来
说来~这个事情也奇怪
只要三步之内有你在
防护罩就张开 睡得像小孩
睡得像小孩
睡得像小孩
最近睡得很坏... 最好你搬过来"""
text.insert('end',ins)

root.mainloop()

执行结果⬇⬇⬇
https://ithelp.ithome.com.tw/upload/images/20211009/201400473Yt25Tfnkp.png


字形设定

可以在打完自之後更改想要的字体还有大小等等。

import tkinter as tk
import tkinter.ttk as ttk
import tkinter.font as font

root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x100')

def family(event):
    f=font.Font (family=familyVar.get())
    text.configure(font=f)

def weight(event):
    f=font.Font (weight=weightVar.get())
    text.configure(font=f)

def size(event):
    f=font.Font (size=sizeVar.get())
    text.configure(font=f)

toolbar=tk.Frame (root, relief='raised', borderwidth=1)
toolbar.pack(side='top', fill='x', padx=2, pady=1)

familyVar = tk.StringVar()
familyFamily=("Arial", "Times", "Courier")
familyVar.set (familyFamily [0]) 
family=tk.OptionMenu(toolbar, familyVar, *familyFamily, command=family)
family.pack(side='left', pady=2)

weightVar=tk.StringVar()
weightFamily = ("normal","bold")
weightVar.set(weightFamily [0]) 
weight = tk.OptionMenu(toolbar,weightVar, *weightFamily, command=weight)
weight.pack(pady=3,side='left')

sizeVar=tk.IntVar()
size=ttk.Combobox (toolbar, textvariable=sizeVar)
sizeFamily = [x for x in range (8,30)]

size["value"]= sizeFamily
size.current (4)
size.bind("<<ComboboxSelected >>", size)
size.pack(side='left')

text=tk.Text (root)
text.pack(fill='both', expand=True, padx=3, pady=2)
text.focus_set()
root.mainloop()

执行结果⬇⬇⬇
https://ithelp.ithome.com.tw/upload/images/20211009/20140047Xdd2qwPvRx.png


这边就是今天的文章啦,Text感觉跟Entry很像,但就是空间会比较大,可以打更多字。
/images/emoticon/emoticon58.gif


<<:  Day25 Bootstrap简介

>>:  Day24 :【TypeScript 学起来】TypeScript 中使用 Class

Day 0x15 - 代码建立 (Part 1: 回覆讯息代码)

0x1 前言 错误码不管是在开发或是正式环境中不可或缺的一环,能为开发或维护带来不少的方便性,有个方...

Day.17 应用中学习 - 实务操作资料库写入 ( golang / sql )

当我们要确保资料是否有成功insert,除了使用程序逻辑上的Lock控制还会搭配到使用事务执行流程...

Day18

传值与传址,但C++是一个特别的语言比C语言更复杂真要细分可分成3类(传值,传址,传参考),同时指标...

[进阶指南] 严格模式( Day29 )

我们可以在开发环境中使用 <React.StrictMode>进入严格模式 严格模式帮...

【从零开始的 C 语言笔记】第二十篇-While Loop(2)

不怎麽重要的前言 上一篇介绍了while loop的概念,让大家在回圈的使用上可以相对的弹性。 这次...