控件之Lable Entry Text Button Scrollbar

2024-06-19 03:32

本文主要是介绍控件之Lable Entry Text Button Scrollbar,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Entry Text 控件:
get() 方法获取文本框中的内容;
insert() 方法插入内容;
delete(self,first,last=None) 删除从 first 到 last 之间的内容;关于 Entry 和 Text 支持的索引需要说明一下,由于 Entry 是单行文本框组件,因此它的索引很简单,
比如要指定第 4 个字符到第 8 个字符,索引指定为 (3,8) 即可。但 Text 是多行文本框组件,
因此它的索引需要同时指定行号和列号,比如 1.0 代表第 1 行、第 1 列(行号从 1 开始, 列号从 0 开始),
如果要指定第 2 行第 3 个字符到第 3 行第 7个字符,索引应指定为 (2.2,3.6)。Text 实际上是一个功能强大的“富文本”编辑组件,这意味着使用 Text 不仅可以插入文本内容,也可以插入图片,
可通过 image_create(self, index, cnf={}, **kw) 方法来插入。Text 也可以设置被插入文本内容的格式,此时就需要为 insert(self, index, chars, *args) 方法的
最后一个参数传入多个 tag 进行控制,这样就可以使用 Text 组件实现图文并茂的效果。当 Text 内容较多时就需要对该组件使用滚动条,以便该 Text 能实现被动显示。为了让滚动条控制 Text 组件
内容的滚动,实际上就是将它们进行双向关联。这里需要两步操作:将 Scrollbar 的 command 设为目标组件的 xview 或 yview,其中 xview 用于水平滚动条控制目标组件水平滚动;
yview 用于垂直读动条控制目标组件垂直滚动。将目标组件的 xscrollcommand 或 yscrollcommand 属性设为 Scrollbar 的 set 方法。

 

from tkinter import *
from tkinter import messageboxroot = Tk()
root.title('Lable Entry Text Scrollbar button')
root.minsize(100,100)topf = Frame(root)
topf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)
label = Label(topf, text='Entry:',width=6).pack(side=LEFT, fill=BOTH, expand=YES)
entry = Entry(topf,width=44,font=('楷体', 14),foreground='green')
entry.pack(side=LEFT, fill=BOTH, expand=YES)midf = Frame(root)
midf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)
label = Label(midf, text='Text:',width=6).pack(side=LEFT, fill=BOTH, expand=YES)
text1 = Text(midf,width=44,height=4,font=('楷体', 14),foreground='gray')
text1.pack(side=LEFT,fill=BOTH, expand=YES)# 在Entry和Text开始处插入内容
def insert_start():entry.insert(0, 'beginning')text1.insert(1.0, 'beginning')
# 在Entry和Text的编辑处插入内容
def insert_edit():entry.insert(INSERT, 'middle')text1.insert(INSERT, 'middle')
# 在Entry和Text的结尾处插入内容
def insert_end():entry.insert(END, 'ending')text1.insert(END, 'ending')
# 删除Entry和Text内容
def delete_all():entry.delete(first=0,last=END)text1.delete(index1=1.0,index2=1.5)
# 获取Entry
def get_entry():messagebox.showinfo(title='输入内容', message=entry.get())
# 获取Text
def get_text():messagebox.showinfo(title='输入内容', message=text1.get(1.0, END))botf = Frame(root)
botf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)
Button(botf, text='开始插入', command=insert_start).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='编辑处插入', command=insert_edit).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='结尾插入', command=insert_end).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='删除内容', command=delete_all).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='获取Entry', command=get_entry).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='获取Text', command=get_text).pack(side=LEFT,fill=BOTH, expand=YES)nextf = Frame(root)
nextf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)text2 = Text(nextf, height=20, width=30)
text2.pack(side=LEFT, fill=BOTH, expand=YES)
# Scrollbar控制text2
scroll = Scrollbar(nextf, command=text2.yview).pack(side=RIGHT, fill=Y)
# text2影响scroll未实现功能
# text2['yscrollcommand']=scroll.set
#text2.configure(yscrollcommand=scroll.set)
# 配置标题和内容样式
text2.tag_configure('title',font=('楷体', 20, 'bold'),foreground='red',justify=CENTER, spacing3=20)
text2.tag_configure('detail',font=('微软雅黑', 11, 'bold'),foreground='blue',spacing2=10,  # 设置行间距spacing3=15)  # 设置段间距
text2.insert(END, '\n')
# 插入标题内容,insert(self, index, chars, *args) 方法的最后一个参数传入多个 tag 进行控制
text2.insert(END, '《面朝大海,春暖花开》\n','title')
# 创建图片
authorP= PhotoImage(file='C:/Users/caojiangtao/Desktop/shirenhaizi.png')
text2.bm = authorP
text2.image_create(END, image=authorP)
text2.insert(END, '\n')
# 插入内容
details = ('    从明天起,做一个幸福的人,'+'喂马、劈柴,周游世界,'+
'从明天起,关心粮食和蔬菜,'+'我有一所房子,面朝大海,春暖花开'+
'从明天起,和每一个亲人通信,'+'告诉他们我的幸福,'+
'那幸福的闪电告诉我的,'+'我将告诉每一个人,'+
'给每一条河每一座山取一个温暖的名字。\n'
'   陌生人,我也为你祝福,愿你有一个灿烂的前程,愿你有情人终成眷属,'
'愿你在尘世获得幸福,我只愿面朝大海,春暖花开。\n')
# 采用循环插入多条介绍信息
for detail in details:text2.insert(END, detail, 'detail')root.mainloop()

 

这篇关于控件之Lable Entry Text Button Scrollbar的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1073885

相关文章

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

WinForms中主要控件的详细使用教程

《WinForms中主要控件的详细使用教程》WinForms(WindowsForms)是Microsoft提供的用于构建Windows桌面应用程序的框架,它提供了丰富的控件集合,可以满足各种UI设计... 目录一、基础控件1. Button (按钮)2. Label (标签)3. TextBox (文本框

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。