tkinter基础教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Tkinter 是 Python 的图形用户界面 (GUI) 模块,您可以使用 Python 制作桌面应用程序。
tkinter包括了图形用户界面GUI小组件,如:文本框,按钮等。
流行的Gui模块还有还有PyQt5,kivy,Pygame。但tkinter最简单的,适合新手入门。

提示:以下是本篇文章正文内容,下面案例可供参考

第1章 tkinter简介

1.2第一个tkinter程序

要使用tkinter一定要导入模块:

from tkinter import *

完整代码如下(示例):

from tkinter import Tk

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()
#运行后是一个空白的窗口

1.3hello,world

我们在前面的基础下添加以下代码,Label是tkinter的小部件用来显示文本

self.label=Label(self,text="hello,world")
self.label.pack()

完整代码如下(示例)

from tkinter import Tk,Label

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        #设置Label用来显示文本
        self.label=Label(self,text="hello,world")
        self.label.pack()
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第2章 Label

Label 是一个小部件,可用于在屏幕上显示文本或图像。随时更改此小部件显示的文本。但标签一次只能使用一种字体来显示文本。要使用标签,您只需指定要在Label中显示的内容(可以是文本、位图或图像)
添加标签的方法:

label = Label(self, text= "tkinter" ) 
label.place(x=100 ,y= 100 )

在类中添加:

self.label=Label(self,text="你好,tkinter")
self.label.place(x=30,y=50)

更改字体颜色

self.label=Label(self, fg= "red",text="你好,tkinter")

更改标签背景

  self.label=Label(self, bg= "blue",text="你好,tkinter")

更改字体大小

self.label=Label(self, bg= "blue", font=( "Helvetica" , 14 ),text="你好,tkinter")

anchor:如果小部件的空间超过文本所需的空间,则此选项用于控制文本的位置。默认值为 anchor=CENTER,它使文本在可用空间中居中。
bg:该选项用于设置标签和指示器后面显示的正常背景颜色。
bd:此选项用于设置指标周围边框的大小。默认 bd 值设置为 2 个像素。
font:如果要在标签中显示文本(使用 text 或 textvariable 选项),则 font 选项用于指定标签中的文本将以何种字体显示。
cursor:用于指定当鼠标移到标签上时显示什么光标。默认是使用标准光标。
textvariable:顾名思义,它与带有标签的 Tkinter 变量(通常是 StringVar)相关联。如果更改变量,则更新标签文本。
fg:标签clior,用于文本和位图标签。默认值是系统特定的。如果您正在显示位图,则这是将出现在位图中 1 位位置的 clior。
padx:此选项用于在标签内的文本左右之间添加额外的空格。此选项的默认值为 1。
pady:此选项用于在标签内文本的顶部和底部之间添加额外的空格。此选项的默认值为 1。
justify:此选项用于定义如何对齐多行文本。使用 LEFT、RIGHT 或 CENTER 作为其值。请注意,要将文本定位在小部件内,请使用锚点选项。justify 的默认值为 CENTER。
relief:此选项用于指定标签周围装饰性边框的外观。此选项的默认值为 FLAT。
wraplength:不是只有一行作为标签文本,它可以分成若干行,其中每行具有为此选项指定的字符数。

完整代码如下(示例):

from tkinter import Tk,Label

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        #设置Label用来显示文本
        self.label=Label(self, bg= "blue", font=( "Helvetica" , 14 ),text="你好,tkinter")
        self.label.place(x=30,y=50)
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第3章 Button

任何Gui都有按钮tkinter中也不例外。
创建按钮的方法和其他小部件差不多:

 self.btn_log = Button(self,text = "登录").place(x = 40,y = 130)

完整代码如下(示例):

from tkinter import Tk,Label,Button,Label,Entry

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        self.user_id = Label(self,text = "账号").place(x = 50,y = 70)
        self.user_password = Label(self,text = "密码").place(x = 50,y = 110)
        self.btn_log = Button(self,text = "登录").place(x = 50,y = 140)
 
        self.user_id_TextEdit = Entry(self,width = 30).place(x = 120,y = 50)
        self.user_password_Edit = Entry(self,width = 30).place(x = 120,y = 110)

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第4章 Combobox

Combobox是列表框和输入字段的组合。它是Tkinter小部件之一,其中包含一个向下箭头,可从选项列表中进行选择。它可以帮助用户根据显示的选项列表进行选择。当用户单击输入字段上的下拉箭头时,滚动列表框的弹出窗口将显示在输入字段下方。仅当选择了“列表框”中的选项时,所选选项才会显示在输入字段中
完整代码如下(示例):

from tkinter import Tk,Label,StringVar,ttk

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        label= Label(self, text ='PythonGUI', font = "30")
        label.pack()
        programlanguage=StringVar()
        chooses=ttk.Combobox(self,width=37,textvariable=programlanguage)
        #添加列表中的元素
        chooses['values']=('C++','java','pyhthon','object-c')
        chooses.pack()

 
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第5章 Spinbox

Spinbox件用于从固定数量的值中进行选择。它是一个替代的Entry小部件,并为用户提供值的范围。

语法:
下面给出了使用旋转框的语法
完整代码如下(示例):

from tkinter import Tk,Label,Spinbox

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        self.spinbox = Spinbox(self, from_= 1, to = 100)
        self.spinbox.pack()
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第6章 Progressbar

完整代码如下(示例):

#待补充

第7章 Scrollbar

滚动条小部件用于向下滚动内容。我们还可以创建Entry小部件的水平滚动条。

完整代码如下(示例):

from tkinter import *

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        #设置Label用来显示文本
        self.label=Label(self, bg= "blue", font=( "Helvetica" , 14 ),text="你好,tkinter")
        self.label.place(x=30,y=50)
        self.sb= Scrollbar(self)
        self.sb.pack( side = RIGHT,
                fill = Y )
        listbox= Listbox(self, 
                 yscrollcommand = self.sb.set )
        for line in range(1, 13):
            listbox.insert(END, "tkinter 第" + str(line)+"章")
        listbox.pack( side = LEFT, fill = BOTH )
        self.sb.config( command = listbox.yview )
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第8章 Checkbutton

复选框小部件
复选按钮小部件是一个标准的 Tkinter 小部件,用于实现开/关选择。复选按钮可以包含文本或图像。按下按钮时。

完整代码如下(示例):

from tkinter import Tk,Label,IntVar,Checkbutton

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        label= Label(self, text ='PythonGUI', font = "30")
        label.pack()
        var1 = IntVar()
        var2 = IntVar()  

        var3 = IntVar()
        var4 = IntVar()
        btn1 = Checkbutton(self, text = "tkinter", 
                      variable = var1,
                      onvalue = 1,
                      offvalue = 0,
                      height = 2,
                      width = 10)
        btn2 = Checkbutton(self, text = "kivy",
                      variable = var2,
                      onvalue = 1,
                      offvalue = 0,
                      height = 2,
                      width = 10)
        btn3 = Checkbutton(self, text = "PyQt5",
                      variable = var3,
                      onvalue = 1,
                      offvalue = 0,
                      height = 2,
                      width = 10)
        btn4 = Checkbutton(self, text = "PyGame",
                      variable = var4,
                      onvalue = 1,
                      offvalue = 0,
                      height = 2,
                      width = 10)
        btn1.pack()
        btn2.pack()
        btn3.pack()
        btn4.pack()
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第9章 Canvas

画布小部件让我们在应用程序上显示各种图形。它可用于将简单的形状绘制成复杂的图形。一般用于开发2D游戏。

完整代码如下(示例):

from tkinter import Tk,Label,IntVar,Checkbutton,Canvas

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        label= Label(self, text ='PythonGUI', font = "30")
        label.pack()
        self.painter=Canvas(self, bg="white", height=300, width=300)
        pos= 10, 10, 300, 300
        myarc = self.painter.create_arc(pos, start=0, extent=150, fill="blue")
        myarv2 = self.painter.create_arc(pos, start=150, extent=215, fill="yellow")
        self.painter.pack()
 
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第10章 Entry

Entry是tkinter中的输入框。通常在前面添加标签小部件

完整代码如下(示例):

from tkinter import *

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        #设置Label用来显示文本
        self.label=Label(self, bg= "blue", font=( "Helvetica" , 14 ),text="你好,tkinter")
        self.label.place(x=30,y=50)
        myentry=Entry(self, show='*', font=('Arial', 24))
        myentry.pack()
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第11章 messagebox

消息框是一个显示消息的小弹出窗口,用于向用户显示有关 python 应用程序行为的消息。消息文本包含多行。

语法:
下面给出了使用该消息的语法。
完整代码如下(示例):

from tkinter import *
import tkinter.messagebox

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        #设置Label用来显示文本
        e2 =Entry(self, show='*', font=('Arial', 14))
        e2.pack()
        
        self.btn=Button(self, text='确认',command=self.Click).pack()
    def Click(self):
        tkinter.messagebox.showinfo('提示', '确认完毕')
        #第一个参数设置标题,第二个参数设置信息内容
    #messagebox.showwarning('提示', 'message')
    #messagebox.showerror('提示', 'message')
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

第12章 menu

tkinter 菜单是顶级下拉菜单。它们显示在标题栏下方,菜单可以有多个子菜单,每个子菜单可以包含项目。菜单项可以与回调方法相关联,当您单击它们时,将调用 Python 方法。跟Java的Gui swing中监听器类似。菜单的常见用途是提供对各种操作的便捷访问,例如保存或打开文件、退出程序或操作数据。顶级菜单显示在根或任何其他顶级窗口的标题栏下方。

以下代码运行后会显示简易版PythonIDLE

from tkinter import *
import tkinter.messagebox

class myFrame(Tk):
    def __init__(self, master=None):
        super().__init__()
        #设置标题
        self.wm_title("我的tkinter")
        

        #设置Label用来显示文本
        mainMenu= Menu(self)
        self.config(menu=mainMenu)
        fileMenu = Menu(mainMenu)
        mainMenu.add_cascade(label="File", menu=fileMenu)
        
       
        
        editMenu = Menu(mainMenu)
        mainMenu.add_cascade(label="Edit", menu=editMenu)

        FormatMenu = Menu(mainMenu)
        mainMenu.add_cascade(label="Format", menu=FormatMenu)

        RunMenu = Menu(mainMenu)
        mainMenu.add_cascade(label="Run", menu=RunMenu)

        
        OptionsMenu = Menu(mainMenu)
        mainMenu.add_cascade(label="Options", menu=OptionsMenu)

        
        WindowMenu = Menu(mainMenu)
        mainMenu.add_cascade(label="Window", menu=WindowMenu)

        HelpMenu = Menu(mainMenu)
        mainMenu.add_cascade(label="Help", menu=HelpMenu)
        
        fileMenu.add_command(label="Item")
        fileMenu.add_command(label="Exit", command=self.quit)
        editMenu.add_command(label="Undo")
        editMenu.add_command(label="Redo")
    def quit(self):
        exit()
        

#初始化tkinter
window=myFrame()



# 显示窗口
window.mainloop()

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,感谢大家的支持

你可能感兴趣的:(python,开发语言)