Python深入学习之Tkinter学习

一、Tkinter说明
Tkinter是python的一个自带的GUI控件库,无需我们再行安装,当然,python有很多控件库可用,后面我们视情况进行说明讲解。
二、Tkinter使用示例
(一)主要核心结构

import tkinter as tk  #导入GUI设计的工具模块包,并进行了重命名,当然需要根据需要,也可以不重命名
root=tk.Tk()  #建立的根程序
root.mainloop()  #主循环

根程序的建立,是为了有一个平台,可以用于加挂控件。
(二)控件的加载方式
示例:加载标签

    lb=tk.Label(root,text="标签1") #设置标签属性
    lb.pack() #将标签加挂到主窗体
先明确一个标签实例,然后通过pack进行加挂动作。
当然,也可以换一种形式表示,如下:
tk.Label(root,text="测试标签").pack(side=tk.LEFT)

两种形式的区别只是需不需要实例化一个对象而已,效果是一样的。个人建议第一种,读起来简单易理解。
(三)几个常用控件的加载
示例:下面是按钮和列表框的,同时,也对整个窗体设置了一个标题为“浅行机器人”

    btn=tk.Button(root,text="按钮")
    btn.pack(side=tk.LEFT)  #加挂到窗体左面
    root.title('浅行机器人')
    li = ['C', 'python', 'php', 'html', 'SQL', 'java']
    movie = ['CSS', 'jQuery', 'Bootstrap']
    listb=tk.Listbox(root)
    for item in li:
        listb.insert(0,item)
    listb.pack(side=tk.RIGHT)

(二)控件的消息响应方式
直接一个文本保存和编辑框的示例来看一下:

    import tkinter as tk
    from tkinter.scrolledtext import ScrolledText
    def load1():
        with open(filename.get()) as file:
            print('hello')
            conents.insert(tk.INSERT,"你好123")
            conents.insert(tk.INSERT,file.read())
    def save1():
        with open(filename.get(),'w') as file:
            print('hello')
            conents.insert(tk.INSERT, "你好123")
            file.write(conents.get('1.0',tk.END))
    top=tk.Tk()
    top.title('Simple Editor')
    conents=ScrolledText()
    conents.pack(side=tk.BOTTOM,expand=True,fill=tk.BOTH)
    tk.Button(text='open',command=load1).pack(side=tk.RIGHT)
    tk.Button(text='save', command=save1).pack(side=tk.RIGHT)
    filename=tk.Entry()
    filename.pack(side=tk.LEFT,expand=True,fill=tk.X)
    top.mainloop()

显示的界面如下:
Python深入学习之Tkinter学习_第1张图片
这里ScrolledText()是下面的富文本编辑框。tk.Entry()是需要保存的文件名。command=load1和command=save1是为了关联按钮和模块的代码。模块是真正要执行的代码,conents.get(‘1.0’,tk.END)这个很有意思,是代表从1行0列开始到最后,将conents实例的内容全部进行拷贝。 conents.insert(tk.INSERT,“你好123”)是在富文本编辑框里,插入“你好123”这个想插入的内容. conents.insert(tk.INSERT,file.read())这个是将打开文件里的内容,然后加入到富文本编辑框中。
三、一个打开和保存文件的对话框形式的代码
代码:我们可以直接保存使用

    import tkinter as tk
    from tkinter import filedialog,dialog
    import os
    window=tk.Tk()
    window.title("浅行机器人")
    window.geometry("800x500")#窗口尺寸,中间用x表示
    text1 = tk.Text(window, width=80, height=20, bg='red', font=('Arial', 12))#创建一个文本框
    text1.pack()
    file_path = ''
    file_text = ''
    def open_file():#
        '''   打开文件   :return:   '''
        global file_path
        global file_text
        file_path = filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser('D:/')))
        print('打开文件:', file_path)
        if file_path is not None:
            with open(file=file_path, mode='r+', encoding='utf-8') as file: file_text = file.read()
            text1.insert('insert', file_text) #将文本内容插入到文本框里
    def save_file():
        '''   保存文件   :return:   '''
        global file_path
        global file_text
        file_path = filedialog.asksaveasfilename(title=u'保存文件')
        print('保存文件:', file_path)
        file_text = text1.get('1.0', tk.END)#表示从第一行第0个字符到最后一个字符全部复制给file_text
        if file_path is not None:
            with open(file=file_path, mode='a+', encoding='utf-8') as file: file.write(file_text)
        text1.delete('1.0', tk.END)
        dialog.Dialog(None, {'title': 'File Modified', 'text': '保存完成', 'bitmap': 'warning', 'default': 0,
                         'strings': ('OK', 'Cancle')})
        print('保存完成')

    bt1 = tk.Button(window, text='打开文件', width=15, height=2, command=open_file)
    bt1.pack()
    bt2 = tk.Button(window, text='保存文件', width=15, height=2, command=save_file)
    bt2.pack()
    window.mainloop()

效果如下:
Python深入学习之Tkinter学习_第2张图片

你可能感兴趣的:(python)