1.Text(root,width,height,bg)
主窗口,宽度,高度,背景色
2.使用 .insert() 方法添加内容
Text 对象.insert(几行.几列,"内容")
w1.insert(2.3,"···")
END 为最后位置
self.w1.insert(END,'[end]')
3.Button(窗口对象,text = "内容",command = "self.函数名").pack([side = "left"])
Button(self,text = "返回文本",command = self.returnText).pack(side = "left")
text 显示的内容 command 运行的函数 pack 位置,使用 side 后,按钮按照 pack 来
4.在类中定义的属性,不会因为运行函数方法后,就销毁
self.photo 不用再使用 global 进行声明
5.使用 PhotoImage 将图片存起来后,将图片显示在多行文本 Text 中
self.photo = PhotoImage(file = '图片路径/图片名.gif')
self.photo = PhotoImage(file = 'images/logo.gif')
使用 .image_create(位置,image = self.photo) 进行添加
self.w1.image_create(END,image = self.photo)
6.添加按钮组件到文本中
btn1 = Button(文本内容,text = "内容")
7.self.w1.tag_config (内容,background 背景颜色,foreground 文字颜色)
8.self.w1.tag_add("内容",起始位置,终止位置)
tag_add 加入内容
9.self.w1.tag_bind("内容","事件",self.函数名)
self.w1.tag_bind("baidu","<Button-1>",self.webshow)
10.webbrowser.open("网址")
打开一个网址

from tkinter import *
from tkinter import messagebox
# 显示消息
import webbrowser
# 导入 webbrowser 到时候点击字体跳转使用 class Application(Frame):
'''GUI程序经典写法'''
def __init__(self,master = None): super().__init__(master)
# super() 表示父类的定义,父类使用 master 参数
self.master = master
# 子类定义一个属性接收传递过来的 master 参数
self.pack()
# .pack 设置布局管理器
self.createWidget()
# 在初始化时,将按钮也实现
# master传递给父类 Frame 使用后,子类中再定义一个 master 对象 def createWidget(self):
'''创建组件'''
# 创建文字 Text(root 主窗口对象,width 宽度,height 高度,bg 背景色)
# 只对于文本有效
self.w1 = Text(root,width = 100,height = 40,bg = "gray")
# 设置背景色 bg = "gray"
self.w1.pack() self.w1.insert(1.0,"0123456789\nabcdefg")
# 1.0 在 第一行 第零列 插入数据
self.w1.insert(2.3,"活在当下\n结发为夫妻,恩爱两不疑\n言行在于美,不在于多")
# 2.3 在 第二行 第三列 Button(self,text = "重复插入文本",command = self.insertText).pack(side = "left")
# 水平排列 side = "left"
Button(self,text = "返回文本",command = self.returnText).pack(side = "left")
Button(self,text = "添加图片",command = self.addImage).pack(side = "left")
Button(self,text = "添加组件",command = self.addWidget).pack(side = "left")
Button(self,text = "通过 tag 控制文本",command = self.testTag).pack(side = "left") def insertText(self):
'''INSERT 索引表示在光标处插入'''
self.w1.insert(INSERT,'Hany')
# END 索引号表示在最后插入
self.w1.insert(END,'[end]')
# 在文本区域最后
self.w1.insert(1.2,"(.-_-.)") def returnText(self):
'''返回文本内容'''
# Indexes(索引) 是用来指向 Text 组件中文本的位置
# Text 的组件索引 也是对应实际字符之间的位置
# 核心:行号从 1 开始,列号从 0 开始
print(self.w1.get(1.2,1.6)) print("文本内容:\n" + self.w1.get(1.0,END)) def addImage(self):
'''增加图片'''
self.photo = PhotoImage(file = 'images/logo.gif')
self.w1.image_create(END,image = self.photo) def addWidget(self):
'''添加组件'''
btn1 = Button(self.w1,text = "Submit")
self.w1.window_create(INSERT,window = btn1)
# 添加组件 def testTag(self):
'''将某一块作为特殊标记,并使用函数'''
self.w1.delete(1.0,END)
self.w1.insert(INSERT,"Come on, you're the best.\n博客园\nHany 加油!!!")
# self.w1.tag_add("good",1.0,1.9)
# 选中标记区域
# self.w1.tag_config("good",background = "yellow",foreground = "red")
# 单独标记某一句,背景色 字体色
self.w1.tag_add("baidu",3.0,3.4)
#
self.w1.tag_config("baidu",underline = True,background = "yellow",foreground = "red")
self.w1.tag_bind("baidu","<Button-1>",self.webshow) def webshow(self,event):
webbrowser.open("http://www.baidu.com") if __name__ == '__main__':
root = Tk()
# 定义主窗口对象
root.geometry("500x300+400+300")
# 创建大小
root.title("Button 测试")
# 设置标题
app = Application(master = root)
# 传递 master 参数为 主窗口对象
root.mainloop()

 

 

 

 

 


2020-04-20

最新文章

  1. 解决ppt中视频不能播放的问题
  2. Neil&#183;Zou 语录二
  3. BZOJ3992: [SDOI2015]序列统计
  4. 千份位Javascript Thousand Separator / string format
  5. Linux网络相关查询脚本
  6. 不定长内存池之apr_pool
  7. 清橙 A1120 拦截导弹 -- 动态规划(最长上升子序列)
  8. listbox多选实现上下移动 js版和服务器版
  9. Effective C++:规定12:不要忘了复制的对象时,它的每一个组成部分
  10. phpcms如何做企业站--&gt; 替换首页最初操作
  11. SpringCloud(二)Eureka集群与Feign
  12. 【URLOS开发入门】docker官方系统镜像——Alpine入门教程
  13. dedecms批量修改文章为待审核稿件怎么操作
  14. js渐隐渐现透明度变化淡入淡出轮播图
  15. python实现base64算法加密
  16. 制作动态logo教程
  17. 送人玫瑰,手留余香&mdash;&mdash;2015年技术分享交流小结
  18. 第5章 首次登录与在线求助man page
  19. 修改apache的注册表值提高系统权限
  20. Ubuntu16.04安装Appium

热门文章

  1. Pycharm连接MySQL后出现不出现数据库或表,出现其他文件的问题
  2. 前端丨如何使用 tcb-js-sdk 实现图片上传功能
  3. Spring笔记(2) - 生命周期/属性赋值/自动装配及部分源码解析
  4. java面试题——对于多态你是怎么理解的呢?不一样的角度,带你重新看java
  5. H5+CSS复习笔记(全)
  6. Flask路由中使用正则表达式匹配
  7. Fetch.AI的最新发布speaks your language
  8. js 整理 前端知识点 前端面试题 (2020)(vue)
  9. C++快速读写
  10. 浅谈.Net Core DependencyInjection源码探究