基于Python3的tkinter Text文本框加滚动条显示信息

news2025/2/26 13:10:46

        用tkinter进行界面程序开发中,经常需要将信息展示到界面上,给用户及时的反馈和想要看到的结果。Text控件允许用户以不同的样式、属性来显示和编辑文本,它可以包含纯文本或者格式化文本,同时支持嵌入图片、显示超链接以及带有 CSS 格式的 HTML 等。

一:整体界面

 里面用到的组件:

1,Radiobutton控件:,单选按钮,

2,Text控件:文本框,显示信息

3,Scrollbar控件:滚动条

4,Button控件:按钮

二: 整体代码框架

def main(self):
        lb = Label(root, text='可视化工具', \
                #bg='#d3fbfb', \
                fg='olive', \
                font=('华文新魏', 12), \
                width=50, \
                height=2, \
                relief=FLAT)
        lb.place(relx=0.25, rely=0.01)

        var = IntVar()
        var.set(2)
        rd1 = Radiobutton(root, text="func 1", fg='red',variable=var, value=0, command=lambda: self.showResult(var.get()))
        rd1.place(relx = 0.23,rely = 0.2)
        rd2 = Radiobutton(root, text="func 2", fg='blue',variable=var, value=1,command=lambda: self.showResult(var.get()))
        rd2.place(relx = 0.4,rely = 0.2)
        rd3 = Radiobutton(root, text="func 3", fg='green',variable=var, value=2,command=lambda: self.showResult(var.get()))
        rd3.place(relx = 0.57,rely = 0.2)

        rd4 = Radiobutton(root, text="func 4", fg='DeepPink',variable=var, value=3, command=lambda: self.showResult(var.get()))
        rd4.place(relx = 0.23,rely = 0.25)
        rd5 = Radiobutton(root, text="func 5", fg='SlateBlue',variable=var, value=4,command=lambda: self.showResult(var.get()))
        rd5.place(relx = 0.4,rely = 0.25)
        rd6 = Radiobutton(root, text="func 6", fg='Brown',variable=var, value=5,command=lambda: self.showResult(var.get()))
        rd6.place(relx = 0.57,rely = 0.25)

        startButton = Button(root, text='Start',font=('华文新魏', 20),  activebackground = "green", command=lambda: self.startFunc(var.get()))
        startButton.place(relx=0.35, rely=0.89, relwidth=0.3, relheight=0.1)

点击start按钮在Text控件中显示信息,Text控件绑定滚动条

def startFunc(self,selectFunc):
        self.collectInfo = [1,2,3,4,5,6]
        if not self.collectInfo:
            return
        if self.startButtonFirst == 0:
            self.validInfo = Text(root, width=100, height=19)#, undo=True, autoseparators=False
            self.validInfo.place(relx=0.01, rely=0.32)
            # 放到窗口的右侧, 填充Y竖直方向
            self.scroll = Scrollbar()
            self.scroll.pack(side=RIGHT,fill=Y)
            # 两个控件关联
            self.scroll.config(command=self.validInfo.yview)
            self.validInfo.config(yscrollcommand=self.scroll.set)
        self.validInfo.delete('1.0','end')
        if selectFunc == 0:
            self.validInfo.insert(INSERT, )
        elif selectFunc == 1:
            self.validInfo.insert(INSERT, self.collectInfo[1])
        elif selectFunc == 2:
            self.validInfo.insert(INSERT, self.collectInfo[2])
        elif selectFunc == 3:
            self.validInfo.insert(INSERT, self.collectInfo[3])
        elif selectFunc == 4:
            self.validInfo.insert(INSERT, self.collectInfo[4])
        elif selectFunc == 5:
            self.validInfo.insert(INSERT, self.collectInfo[5])
        self.startButtonFirst = 1

点击单选按钮显示信息

def showResult(self,selectFunc):
        if self.startButtonFirst == 0:
            return
        self.validInfo.delete('1.0','end')
        if selectFunc == 0:
            self.validInfo.insert(INSERT, self.collectInfo[0])
        elif selectFunc == 1:
            self.validInfo.insert(INSERT, self.collectInfo[1])
        elif selectFunc == 2:
            self.validInfo.insert(INSERT, self.collectInfo[2])
        elif selectFunc == 3:
            self.validInfo.insert(INSERT, self.collectInfo[3])
        elif selectFunc == 4:
            self.validInfo.insert(INSERT, self.collectInfo[4])
        elif selectFunc == 5:
            self.validInfo.insert(INSERT, self.collectInfo[5])

三:Text控件

1,基本属性

属性说明
autoseparators默认为 True,表示执行撤销操作时是否自动插入一个“分隔符”(其作用是用于分隔操作记录)
exportselection默认值为 True,表示被选中的文本是否可以被复制到剪切板,若是 False 则表示不允许。
insertbackground设置插入光标的颜色,默认为 BLACK
insertborderwidth设置插入光标的边框宽度,默认值为 0
insertofftime该选项控制光标的闪烁频频率(灭的状态)
insertontime该选项控制光标的闪烁频频率(亮的状态)
selectbackground指定被选中文本的背景颜色,默认由系统决定
selectborderwidth指定被选中文本的背景颜色,默认值是0
selectforeground指定被选中文本的字体颜色,默认值由系统指定
setgrid默认值是 False,指定一个布尔类型的值,确定是否启用网格控制
spacing1指定 Text 控件文本块中每一行与上方的空白间隔,注意忽略自动换行,且默认值为 0。
spacing2指定 Text 控件文本块中自动换行的各行间的空白间隔,忽略换行符,默认值为0
spacing3指定 Text 组件文本中每一行与下方的空白间隔,忽略自动换行,默认值是 0
tabs定制 Tag 所描述的文本块中 Tab 按键的功能,默认被定义为 8 个字符宽度,比如 tabs=('1c', '2c', '8c') 表示前 3 个 Tab 宽度分别为 1厘米,2厘米,8厘米。
undo该参数默认为 False,表示关闭 Text 控件的“撤销”功能,若为 True 则表示开启
wrap该参数用来设置当一行文本的长度超过 width 选项设置的宽度时,是否自动换行,参数值 none(不自动换行)、char(按字符自动换行)、word(按单词自动换行)
xscrollcommand该参数与 Scrollbar 相关联,表示沿水平方向上下滑动
yscrollcommand该参数与 Scrollbar 相关联,表示沿垂直方向左右滑动

2,基本方法

方法说明
bbox(index)返回指定索引的字符的边界框,返回值是一个 4 元组,格式为(x,y,width,height)
edit_modified()该方法用于查询和设置 modified 标志(该标标志用于追踪 Text 组件的内容是否发生变化)
edit_redo()“恢复”上一次的“撤销”操作,如果设置 undo 选项为 False,则该方法无效。
edit_separator()插入一个“分隔符”到存放操作记录的栈中,用于表示已经完成一次完整的操作,如果设置 undo 选项为 False,则该方法无效。
get(index1, index2)返回特定位置的字符,或者一个范围内的文字。
image_cget(index, option)返回 index 参数指定的嵌入 image 对象的 option 选项的值,如果给定的位置没有嵌入 image 对象,则抛出 TclError 异常
image_create()在 index 参数指定的位置嵌入一个 image 对象,该 image 对象必须是 Tkinter 的 PhotoImage 或 BitmapImage 实例。
insert(index, text)在 index 参数指定的位置插入字符串,第一个参数也可以设置为 INSERT,表示在光标处插入,END 表示在末尾处插入。
delete(startindex [, endindex])删除特定位置的字符,或者一个范围内的文字。
see(index)如果指定索引位置的文字是可见的,则返回 True,否则返回 False。

四:tkinter支持的颜色汇总

在tkinter中有很多颜色的设置,此处汇总一下,不用四处找了

  1. '''#FFB6C1 LightPink 浅粉红

  2. #FFC0CB Pink 粉红

  3. #DC143C Crimson 深红/猩红

  4. #FFF0F5 LavenderBlush 淡紫红

  5. #DB7093 PaleVioletRed 弱紫罗兰红

  6. #FF69B4 HotPink 热情的粉红

  7. #FF1493 DeepPink 深粉红

  8. #C71585 MediumVioletRed 中紫罗兰红

  9. #DA70D6 Orchid 暗紫色/兰花紫

  10. #D8BFD8 Thistle 蓟色

  11. #DDA0DD Plum 洋李色/李子紫

  12. #EE82EE Violet 紫罗兰

  13. #FF00FF Magenta 洋红/玫瑰红

  14. #FF00FF Fuchsia 紫红/灯笼海棠

  15. #8B008B DarkMagenta 深洋红

  16. #800080 Purple 紫色

  17. #BA55D3 MediumOrchid 中兰花紫

  18. #9400D3 DarkViolet 暗紫罗兰

  19. #9932CC DarkOrchid 暗兰花紫

  20. #4B0082 Indigo 靛青/紫兰色

  21. #8A2BE2 BlueViolet 蓝紫罗兰

  22. #9370DB MediumPurple 中紫色

  23. #7B68EE MediumSlateBlue 中暗蓝色/中板岩蓝

  24. #6A5ACD SlateBlue 石蓝色/板岩蓝

  25. #483D8B DarkSlateBlue 暗灰蓝色/暗板岩蓝

  26. #E6E6FA Lavender 淡紫色/熏衣草淡紫

  27. #F8F8FF GhostWhite 幽灵白

  28. #0000FF Blue 纯蓝

  29. #0000CD MediumBlue 中蓝色

  30. #191970 MidnightBlue 午夜蓝

  31. #00008B DarkBlue 暗蓝色

  32. #000080 Navy 海军蓝

  33. #4169E1 RoyalBlue 皇家蓝/宝蓝

  34. #6495ED CornflowerBlue 矢车菊蓝

  35. #B0C4DE LightSteelBlue 亮钢蓝

  36. #778899 LightSlateGray 亮蓝灰/亮石板灰

  37. #708090 SlateGray 灰石色/石板灰

  38. #1E90FF DodgerBlue 闪兰色/道奇蓝

  39. #F0F8FF AliceBlue 爱丽丝蓝

  40. #4682B4 SteelBlue 钢蓝/铁青

  41. #87CEFA LightSkyBlue 亮天蓝色

  42. #87CEEB SkyBlue 天蓝色

  43. #00BFFF DeepSkyBlue 深天蓝

  44. #ADD8E6 LightBlue 亮蓝

  45. #B0E0E6 PowderBlue 粉蓝色/火药青

  46. #5F9EA0 CadetBlue 军兰色/军服蓝

  47. #F0FFFF Azure 蔚蓝色

  48. #E0FFFF LightCyan 淡青色

  49. #AFEEEE PaleTurquoise 弱绿宝石

  50. #00FFFF Cyan 青色

  51. #00FFFF Aqua 浅绿色/水色

  52. #00CED1 DarkTurquoise 暗绿宝石

  53. #2F4F4F DarkSlateGray 暗瓦灰色/暗石板灰

  54. #008B8B DarkCyan 暗青色

  55. #008080 Teal 水鸭色

  56. #48D1CC MediumTurquoise 中绿宝石

  57. #20B2AA LightSeaGreen 浅海洋绿

  58. #40E0D0 Turquoise 绿宝石

  59. #7FFFD4 Aquamarine 宝石碧绿

  60. #66CDAA MediumAquamarine 中宝石碧绿

  61. #00FA9A MediumSpringGreen 中春绿色

  62. #F5FFFA MintCream 薄荷奶油

  63. #00FF7F SpringGreen 春绿色

  64. #3CB371 MediumSeaGreen 中海洋绿

  65. #2E8B57 SeaGreen 海洋绿

  66. #F0FFF0 Honeydew 蜜色/蜜瓜色

  67. #90EE90 LightGreen 淡绿色

  68. #98FB98 PaleGreen 弱绿色

  69. #8FBC8F DarkSeaGreen 暗海洋绿

  70. #32CD32 LimeGreen 闪光深绿

  71. #00FF00 Lime 闪光绿

  72. #228B22 ForestGreen 森林绿

  73. #008000 Green 纯绿

  74. #006400 DarkGreen 暗绿色

  75. #7FFF00 Chartreuse 黄绿色/查特酒绿

  76. #7CFC00 LawnGreen 草绿色/草坪绿

  77. #ADFF2F GreenYellow 绿黄色

  78. #556B2F DarkOliveGreen 暗橄榄绿

  79. #9ACD32 YellowGreen 黄绿色

  80. #6B8E23 OliveDrab 橄榄褐色

  81. #F5F5DC Beige 米色/灰棕色

  82. #FAFAD2 LightGoldenrodYellow 亮菊黄

  83. #FFFFF0 Ivory 象牙色

  84. #FFFFE0 LightYellow 浅黄色

  85. #FFFF00 Yellow 纯黄

  86. #808000 Olive 橄榄

  87. #BDB76B DarkKhaki 暗黄褐色/深卡叽布

  88. #FFFACD LemonChiffon 柠檬绸

  89. #EEE8AA PaleGoldenrod 灰菊黄/苍麒麟色

  90. #F0E68C Khaki 黄褐色/卡叽布

  91. #FFD700 Gold 金色

  92. #FFF8DC Cornsilk 玉米丝色

  93. #DAA520 Goldenrod 金菊黄

  94. #B8860B DarkGoldenrod 暗金菊黄

  95. #FFFAF0 FloralWhite 花的白色

  96. #FDF5E6 OldLace 老花色/旧蕾丝

  97. #F5DEB3 Wheat 浅黄色/小麦色

  98. #FFE4B5 Moccasin 鹿皮色/鹿皮靴

  99. #FFA500 Orange 橙色

  100. #FFEFD5 PapayaWhip 番木色/番木瓜

  101. #FFEBCD BlanchedAlmond 白杏色

  102. #FFDEAD NavajoWhite 纳瓦白/土著白

  103. #FAEBD7 AntiqueWhite 古董白

  104. #D2B48C Tan 茶色

  105. #DEB887 BurlyWood 硬木色

  106. #FFE4C4 Bisque 陶坯黄

  107. #FF8C00 DarkOrange 深橙色

  108. #FAF0E6 Linen 亚麻布

  109. #CD853F Peru 秘鲁色

  110. #FFDAB9 PeachPuff 桃肉色

  111. #F4A460 SandyBrown 沙棕色

  112. #D2691E Chocolate 巧克力色

  113. #8B4513 SaddleBrown 重褐色/马鞍棕色

  114. #FFF5EE Seashell 海贝壳

  115. #A0522D Sienna 黄土赭色

  116. #FFA07A LightSalmon 浅鲑鱼肉色

  117. #FF7F50 Coral 珊瑚

  118. #FF4500 OrangeRed 橙红色

  119. #E9967A DarkSalmon 深鲜肉/鲑鱼色

  120. #FF6347 Tomato 番茄红

  121. #FFE4E1 MistyRose 浅玫瑰色/薄雾玫瑰

  122. #FA8072 Salmon 鲜肉/鲑鱼色

  123. #FFFAFA Snow 雪白色

  124. #F08080 LightCoral 淡珊瑚色

  125. #BC8F8F RosyBrown 玫瑰棕色

  126. #CD5C5C IndianRed 印度红

  127. #FF0000 Red 纯红

  128. #A52A2A Brown 棕色

  129. #B22222 FireBrick 火砖色/耐火砖

  130. #8B0000 DarkRed 深红色

  131. #800000 Maroon 栗色

  132. #FFFFFF White 纯白

  133. #F5F5F5 WhiteSmoke 白烟

  134. #DCDCDC Gainsboro 淡灰色

  135. #D3D3D3 LightGrey 浅灰色

  136. #C0C0C0 Silver 银灰色

  137. #A9A9A9 DarkGray 深灰色

  138. #808080 Gray 灰色

  139. #696969 DimGray 暗淡灰

  140. #000000 Black 纯黑'''

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ Primer Plus——第6章 分支语句和逻辑运算符

第6章 分支语句和逻辑运算符 6.1 if语句6.1.1 if else语句6.1.2 格式化if else语句6.1.3 if else if else结构 6.2 逻辑表达式6.2.1 逻辑OR运算符:||6.2.2 逻辑AND运算符:&&6.2.3 用&&来设置取值范围 6.1 if语句 if语句让程序能够决定是…

CSP-202212-2 训练计划

目录 一、题目 二、思路 三、C代码如下 一、题目 问题背景 西西艾弗岛荒野求生大赛还有 n 天开幕! 问题描述 为了在大赛中取得好成绩,顿顿准备在 n 天时间内完成“短跑”、“高中物理”以及“核裂变技术”等总共 m 项科目的加强训练。其中第 i 项…

【源码解析】@ControllerAdvice实现异常捕获与响应增强处理的原理解析

全局异常处理 demo展示 Slf4j RestControllerAdvice public class GlobalExceptionAdvice {ExceptionHandler(RuntimeException.class)public R<Void> handleNotPermissionException(RuntimeException e, HttpServletRequest request) {String requestURI request.get…

卷土重来?我羊羊羊羊羊了!

大家注意&#xff1a;因为微信最近又改了推送机制&#xff0c;经常有小伙伴说错过了之前被删的文章&#xff0c;比如前阵子冒着风险写的爬虫&#xff0c;再比如一些限时福利&#xff0c;错过了就是错过了。 所以建议大家加个星标&#xff0c;就能第一时间收到推送。&#x1f44…

顶尖作品集封面封底来了 共28套

各位打算换工作的都找到心仪东家没? 我们都知道作品集作为我们的敲门砖 其重要性不言而喻 如何让我们的作品集脱颖而出 这里作品集封面就很重要一个设计感超强的封面 可以让面试官眼前一亮 今天给大家整理了28款设计师专属作品集封面封底 让HR看后过目不忘大大提高面试…

删除二叉搜索树中的节点

1题目 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。返回二叉搜索树&#xff08;有可能被更新&#xff09;的根节点的引用。 一般来说&#xff0c;删除节点可分为两个步骤&#xff1a…

Oracle EBS Interface/API(48)- AP发票取消API

快速参考 参考点内容功能导航N: AP->发票->录入->发票并发请求None基表AP.AP_INVOICES_ALLAPI参考下面介绍错误信息表None接口FormNone接口RequestDebug ProfileNone详细例子参考如下实例官方文档None数据验证包None用户界面 Path:AP->发票>录入>发票->活…

Android Studio下配置NDK和Cmake

文章目录 NDK简介AS上安装NDK和CmakeAS项目中添加支持C和CMake NDK简介 ndk是SDK的扩展部分&#xff0c;ndk是一套在Android Studio 上支持开发及编译链接C/C的工具链。 AS上安装NDK和Cmake 点击完OK后&#xff0c;等待安装就行了。安装完毕后&#xff1a; 在local.propertie…

Windows在外远程桌面控制macOS【macOS自带VNC远程】

文章目录 前言1.测试局域网内远程控制1.1 macOS打开屏幕共享1.2 测试局域网内VNC远程控制 2. 测试公网远程控制2.1 macOS安装配置cpolar内网穿透2.2 创建tcp隧道&#xff0c;指向5900端口 3. 测试公网远程控制4. 配置公网固定TCP地址4.1 保留固定TCP地址4.2 配置固定TCP端口地址…

使用Process Monitor排查因dll库被锁定导致C++程序启动报“0xc0000022”错误问题

目录 1、问题描述 2、查找到异常值0xc0000022对应的标识STATUS_ACCESS_DENIED 3、使用Process Monitor定位到哪个dll库被隔离了 4、在360安全卫士中将被隔离的文件恢复了&#xff0c;但360并没有释放对文件的锁定 VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢…

5.12 C高级 作业

有m1.txt m2.txt m3.txt m4.txt&#xff0c;分别创建出对应的目录&#xff0c;m1 m2 m3 m4 并把文件移动到对应的目录下 #!/bin/bashvar1(ls *.txt)for i in ${var1[*]} doposexpr index $i .var2expr substr $i 1 $((pos-1))mkdir $var2mv $i $var2 done使用break关键字打印九…

【算法】【算法杂谈】将路径数组变为统计数组(单数组的调整与转换)

目录 前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本 思考感悟写在最后 前言 当前所有算法都使用测试用例运行过&#xff0c;但是不保证100%的测试用例&#xff0c;如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识&#xff01; 问题介…

rocketMQ的架构原理和读写逻辑

NameServer 无状态节点&#xff0c;集群部署&#xff0c;节点之间无任何信息同步&#xff0c;支持横向拓展&#xff1b; producer & consumer也是无状态的&#xff0c;每一个producer之间 &#xff0c;每一个consumer之间都不会通信&#xff0c; 每个producer和consumer内部…

STL-set容器

set/multiset容器基本概念 所有元素都会根据元素的键值自动被排序。 set/multiset属于关联式容器&#xff0c;底层结构是用二叉树实现。 set容器特点 set的元素不像map那样可以同时拥有实值和键值&#xff0c;set的元素即是键值又是实值。 set不允许两个元素有相同的键值。…

博客系统后端设计(四) - 实现获取博客详情页功能

文章目录 实现获取博客详情页功能约定前后端接口实现后端代码实现前端代码 实现获取博客详情页功能 在 博客列表页 点击 “查看全文” 按钮&#xff0c;就能跳转到博客详情页中。 跳转过去之后&#xff0c;在博客详情页中发起一个 ajax&#xff0c;从服务器获取到当前博客的具体…

【AI大模型】讯飞版大模型来了,现场发布四大行业应用成果

文章目录 前言SparkDesk讯飞星火认知大模型简介语言理解知识问答逻辑推理数学题解答代码理解与编写亲自体验写在最后前言 5月6日,讯飞星火认知大模型成果发布会在安徽合肥举行。科大讯飞董事长刘庆峰、研究院院长刘聪发布讯飞星火认知大模型,现场实测大模型七大核心能力,并…

和众视野加入飞桨技术伙伴计划,共同推动纺织行业智能化转型

近日&#xff0c;北京和众视野科技有限公司正式加入飞桨技术伙伴计划&#xff0c;双方将共同努力开发AI视觉检测技术和机器人流程自动化相结合的系统解决方案。 北京和众视野科技有限公司 北京和众视野是一家实验室检测仪器及解决方案供应商&#xff0c;一直专注于视觉检测和检…

我们在追求什么?以及我们将通往何方?记录AIGC共建者大会的一次演讲

‍‍ ​ 下一秒&#xff1a; 这个世界真如我们所见那样吗&#xff1f; 大家好&#xff0c;我是shadow。在特赞主办的AIGC创建者大会上&#xff0c;我分享了作为多重职业身份所从事的一些有意思的事情&#xff1a; 作为创作者&#xff0c;生成式人工智能展示了TA的才华&#xff…

【Fluent】XYplot中导出随着XYZ单一坐标变化的物理量规律

一、问题背景 之前我写的博客里&#xff0c;讲了如何导出区域内所有节点/单元格中心的XYZ三坐标&#xff0c;及其这个节点/单元格中心上存储的物理量信息。 但是有时候&#xff0c;我们有一个需求——只需要X、Y、Z坐标中的一个。 例如我们需要导出在某一条线上随X坐标变化的…

AICG,人工智能自动生成内容——根据文本生成图像,视频,音频

文章目录 1、什么是AICG&#xff1f;2、Text2Video3、Text2Image4、Text2Audio5、AICG的发展趋势 1、什么是AICG&#xff1f; 什么是AICG&#xff1f; AICG是指人工智能自动生成内容。通过算法模型&#xff0c;将文本转化为图像、音频、视频等多种形式。在数字时代&#xff0…