python图形界面化编程GUI(二)常用的组件(Text、Radiobutton、Checkbutton、Canvas)和布局管理器(gird、pack、place)

Text文本框

Text(多行文本框)的主要用于显示多行文本,还可以显示 网页链接, 图片, HTML 页面, 甚至 CSS 样式表,添加组件 等。主要用来显示信息,也常被当做简单的文本处理器、⽂本编辑器或者 网页浏览器来使用。IDLE就是 Text 组件构成的。
insert插入的时候可以用INSERT代表当前光标的位置,END代表在结尾的位置,也可以用插入小数的形式,2.3代表第二行第三列后插入。

from tkinter import *
from tkinter import messagebox

#定义类继承于画纸对象
class Application(Frame):
    '''经典的GUI程序类的写法'''
    def __init__(self,master=None):# master模板容器,画纸放到哪
        # 继承方法,父类的重新定义
        super().__init__(master) # 定义属性
        self.master = master
        self.pack() # 画纸几何布局,默认摆放
        self.CreatWidget() # 创建示例对象时,自动进行调用

    def CreatWidget(self):
        '''创建组件'''
        # 文本框的高度和宽度
        self.w1 = Text(root,width=40,height=12,bg='gray')
        self.w1.pack()
		# INSERT 表示光标当前的位置,END表示结尾的位置
        # self.w1.insert(INSERT,'hello')
        # self.w1.insert(END,'world')    # 在文本框中输入hello world
		# 小数点代表  行.列,插入到第几行第几列后的位置
        self.w1.insert(1.0,'1234567890\nabcdefg')
        self.w1.insert(2.3,'今天上课很开心\n')

if __name__ == '__main__': # 程序入口,里面的本文件内调用,其他程序访问不到
    root = Tk() # 创建主窗口
    root.title('标题-经典GUI程序类的测试')
    root.geometry('300x300+900+300')

    # 创建画纸对象放到root画板上
    Application(master=root)
    root.mainloop()  # 消息循环

python图形界面化编程GUI(二)常用的组件(Text、Radiobutton、Checkbutton、Canvas)和布局管理器(gird、pack、place)_第1张图片

from tkinter import *
import webbrowser

#定义类继承于画纸对象
class Application(Frame):
    '''经典的GUI程序类的写法'''
    def __init__(self,master=None):# master模板容器,画纸放到哪
        # 继承方法,父类的重新定义
        super().__init__(master) # 定义属性
        self.master = master
        self.pack() # 画纸几何布局,默认摆放
        self.CreatWidget() # 创建示例对象时,自动进行调用

    def CreatWidget(self):
        '''创建组件'''
        # 文本框的高度、宽度及背景色
        self.w1 = Text(root,width=40,height=12,bg='gray')
        self.w1.pack()

        # 在文本框里插入内容
        # INSERT 表示光标当前的位置,END表示结尾的位置
        # self.w1.insert(INSERT,'hello')
        # self.w1.insert(END,'world')    # 在文本框中输入hello world

        # 小数点代表  行.列,插入到第几行第几列后的位置
        self.w1.insert(1.0,'1234567890\nabcdefg')
        self.w1.insert(2.3,'今天上课很开心\n')

        Button(self, text='重复插入文本', command=self.insertText).pack(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,' 你好啊 ')
        # END 在最后面插入
        self.w1.insert(END,'好好学习')
        # 在第一行第八列后插入
        self.w1.insert(1.8,'图形编程')

    def returnText(self):
        # Indexes(索引)是⽤来指向 Text 组件中⽂本的位置,Text 的组件索引也是对应实际字符之间的位置。
        # 核⼼:⾏号以 1 开始 列号以 0 开始
        # 获取第一行第三列到第六列的内容,截取文本,左闭右开
        print(self.w1.get(1.2, 1.6)) # 3456
        print("所有⽂本内容:\n" + self.w1.get(1.0, END))

    def addImage(self):
        # global photo
        self.photo = PhotoImage(file="images/shou.gif")
        # 文本框内插入图片
        self.w1.image_create(END, image=self.photo)

    def addWidget(self):
        # 添加按钮,并没有command绑定功能,点击后没反应
        b1 = Button(self.w1, text='编程语言')
        # 在 text 创建组件的命令,在光标处
        self.w1.window_create(INSERT, window=b1)

    def testTag(self):  # 精确控制
        self.w1.d

你可能感兴趣的:(python-GUI图形化编程,python,开发语言)