前言:
现时各位老铁们对“python stringvar类型转成string”大致比较关心,同学们都需要学习一些“python stringvar类型转成string”的相关内容。那么小编也在网摘上收集了一些关于“python stringvar类型转成string””的相关资讯,希望我们能喜欢,同学们快快来了解一下吧!今天在这此给大家介绍,如何使用Python的 tkinter库进行用户界面GUI编程。Python 的GUI工具包主要有PyQt、 wxPython、PyGTK和Tkinter等。其中Tkinter是Python事实上的标准GUI工具包。只要安装了Windows版本的python,就默认安装了Tkinter库。另外Tkinter的使用非常简单(通过本文后面内容的一步一步介绍,你就会同意这点)。
#PS: 纯手写的原文,如需转载此文,请注明来源。谨以此文抛砖引玉,简要介绍如何使用tkinter#
开始介绍Tkinter GUI 编程之前,如果还没有安装Python,需要先安装Python。Python是免费、开源、易用的编程语言。可在Python的官网 ww.python.org 下载python安装包。下载好以后,双击.exe安装包一路默认安装即可。
《第一部分,用tkinter创建一个空白窗口》
话不多说,直接上Tkinter代码。运行它将建立一个空白的,什么都干不了的窗口。此窗口仅仅可以通过右上角的三个图标进行最大化,最小化,和关闭操作。对了,鼠标光标移动到窗口边缘的时候,还可以盖板窗口大小(后面我还会介绍,如何锁定窗口大小,使得用户不能盖板窗口大小)。
使用Tkinter进行GUI编程非常简单,仅五行代码(黄色字体的为python代码,蓝色的"#"开头的为注释,方便大家对代码的理解),就使用Tkinter创建了一个窗口。大家可以把下面的代码copy过去,试着运行起来试试看哦。。。使用默认的Python IDLE,按F5 按键就可以运行代码。如果使用pycharm(一个python的集成开发环境,会比默认的Pyton IDLE好用很多,而且有社区免费版)编写python代码的话,使用Run菜单下的Run…来运行。
#Step-1:导入tkinter模块. python版本为 python 3.Xfrom tkinter import *#Step-2: 使用tkinter模块的Tk(), 来创建一个root_window窗口。root_window= Tk() # Tk的T是大写的!#Setp-3: 设置窗口的大小,和标题root_window.geometry("500x380") # 设置窗口大小是200x180; geometry是“几何,形状”的意思。root_window.title("Tkinter示例窗口") # 设置窗口的标题; title翻译成中文是“标题”的意思。#Step-4: 使用mainloop()显示窗口root_window.mainloop()
运行这五行简短的代码后,就会看到我们的GUI界面空白窗口了。窗口看起来如下面第二张图片所示,窗口大小为500X380,标题为"Tkinter示例窗口"。
代码的解释如下: 1. 用import语句导入tkinter模块,import之后才能使用tkinter;2.使用Tk()方法创建顶层窗口,窗口存到变量root_window中;3.设置窗口大小(string type, 长x宽),和标题(string type,中文标题或英文标题都可以);4.调用mainloop()方法显示窗口。只有mainloop()后才会显示窗口。
大家可以试着改变窗口大小,和标题,然后再次运行代码,看看有什么不同。在step-3中增加下面这个代码后,窗口就会不允许改变大小:
root_window .resizable(width=False, height=False)
《第二部分,往空白窗口中添加控件》
接下来,我们将要往上一部分创建的空白窗口中添加一些控件。和第一部分一样非常简单。
在step-4前面,增加下面这些代码。可以暂时先不要去读这些代码的意思,直接copy过去,运行程序。待程序能运行后,再回过头来看每行代码的意思。注意,我们先添加Frame框架,然后再向Frame框架中添加控件。这样便于控件在界面中的排布。 padx和pady 分别用来控制控件的水平间距和竖直间距。
#增加控件部分的代码。#在root_window,顶层窗口上,增加“frame_OS”框架,用来放一个显示操作系统名称的Label和Entry.frame_OS = Frame(root_window)frame_OS.pack(side=TOP, expand=NO, pady=3)OS_name = Label(frame_OS,text="操作系统:", width=10, height=1, anchor=W)OS_name.pack(side=LEFT, expand=NO)OS_value = Entry(frame_OS,width=100, fg="blue")OS_value.pack(side=LEFT, expand=YES, fill=X, padx=5)#在root_window,顶层窗口上,增加“frame_bit”框架,用来放一个显示操作系统的位数的Label和Entry,32bit or 64bit?frame_bit = Frame(root_window)frame_bit.pack(side=TOP, expand=NO, pady=3)bit_name = Label(frame_bit,text="系统位数:", width=10, height=1, anchor=W)bit_name.pack(side=LEFT, expand=NO)bit_value = Entry(frame_bit,width=100, fg="blue")bit_value.pack(side=LEFT, expand=YES, fill=X, padx=5)#在root_window,顶层窗口上,增加“frame_py_version”框架,用来放显示python版本的Label和Entry.frame_py_version = Frame(root_window)frame_py_version.pack(side=TOP, expand=NO, pady=3)py_name = Label(frame_py_version,text="Python 版本:", width=10, height=1, anchor=W)py_name.pack(side=LEFT, expand=NO)py_ver_value = Entry(frame_py_version,width=100, fg="blue")py_ver_value.pack(side=LEFT, expand=YES, fill=X, padx=5)#在root_window,顶层窗口上,增加“frame_button”框架.frame_button = Frame(root_window)frame_button.pack(side=TOP, expand=NO, pady=3)#在“frame_button”框架上,增加“获取信息”按钮button_fetch_info = Button(frame_button, text="获取信息", fg="green")button_fetch_info.pack(side=LEFT, expand=NO, padx=10)#在“frame_button”框架上,增加“清空信息”按钮button_clear_info = Button(frame_button, text="清空信息")button_clear_info.pack(side=LEFT, expand=NO, padx=10)#在“frame_button”框架上,增加“退出程序”按钮button_clear_exit = Button(frame_button, text="退出程序", fg="red")button_clear_exit.pack(side=LEFT, expand=NO, padx=10)
运行程序后,GUI界面窗口应该会变成下图这样。我们在GUI界面窗口是那个添加了,三个Tkinter的Entry本文框,分别用来显示"电脑操作系统名称","操作系统位数",和"python版本"。同时,我们也添加了三个button按钮。 这样我们就得到了一个如下的窗口。目前三个按钮还没有绑定回叫,三个用来显示信息的Entry文本框也没有设置显示变量。我们将在第三部分中,完成这些剩余的工作。来是这个python的tkinter程序能真正工作。
《第三部分,让GUI界面能真正工作》
在step-1中,导入platform模块,我们获取操作系统的信息,需要用到这个模块。同时,导入os模块。
#Step-1:导入tkinter和platform,os模块. python版本为 python 3.Xfrom tkinter import *import platform #获取操作系统信息,需要使用这个模块。import os #退出程序要使用os模块下面的 "_exit()"。
给用来显示信息的是那个Entry添加三个textvariable显示变量。只要改变这三个变量的值,就可以控制三个Entry文本显示框的显示内容。
OS_value = Entry(frame_OS,width=100, fg="blue", textvariable=OS_info_stringvar)OS_value.pack(side=LEFT, expand=YES, fill=X, padx=5)bit_value = Entry(frame_bit,width=100, fg="blue", textvariable=bit_info_stringvar)bit_value.pack(side=LEFT, expand=YES, fill=X, padx=5)py_ver_value = Entry(frame_py_version,width=100,fg="blue",textvariable=py_ver_stringvar)py_ver_value.pack(side=LEFT, expand=YES, fill=X, padx=5)
声明上面添加的三个显示变量。代码如下图红框中所示。特别注意!三个显示变量的类型为tkinter库里面的StringVar类型。不是普通的string 类型。
接下来,我们给三个按钮,增加command,当按钮被点击的时候,就会调用command绑定的回叫函数。
在这里,我们给三个按钮的command绑定的三个回叫函数分别为:get_info,clear_info, exit_app;
#在“frame_button”框架上,增加“获取信息”按钮button_fetch_info = Button(frame_button,text="获取信息", fg="green",command=get_info)button_fetch_info.pack(side=LEFT, expand=NO, padx=10)#在“frame_button”框架上,增加“清空信息”按钮button_clear_info = Button(frame_button, text="清空信息", command=clear_info)button_clear_info.pack(side=LEFT, expand=NO, padx=10)#在“frame_button”框架上,增加“退出程序”按钮button_clear_exit = Button(frame_button, text="退出程序", fg="red", command=exit_app)button_clear_exit.pack(side=LEFT, expand=NO, padx=10)
既然三个回叫函数的名称有了,那我们就要定义这三个函数。记住,只有定义往这三个函数后,才能运行程序,否则会出现函数为定义报错。
#函数定义区def get_info(): #定义一个回叫函数,当“获取信息”按钮被点击的时候,会运行这个函数。os_info = platform.platform()bit_info = platform.architecture()[0]py_verison_info = platform.python_version()OS_info_stringvar.set(os_info) # 设置操作系统名称的显示变量bit_info_stringvar.set(bit_info) # 设置操作系位数称的显示变量py_ver_stringvar.set(py_verison_info) # 设置python版本的显示变量def clear_info():#定义一个回叫函数,当“清空信息”按钮被点击的时候,会运行这个函数。OS_info_stringvar.set("") # 操作系统名称的显示变量,清空!bit_info_stringvar.set("") # 操作系位数称的显示变量,清空!py_ver_stringvar.set("") # python版本的显示变量,清空!def exit_app():#定义一个回叫函数,当“退出程序”按钮被点击的时候,会运行这个函数。os._exit(1) #退出程序。
完成三个函数定义后,,,大功告成! 让我们运行程序后效果如下图: 单击获取信息按钮,就会获得需要的信息。点击清空信息按钮,就会清空三个信息框。点击退出程序按钮,就会退出这个python的tkinter GUI程序。
最后,此例的完整代码如下: (因为代码贴上来后格式变了,头条网页也布支持代码着色,如果有要此例py源代码的,可以私信联系,单独把代码发给你。)
#Step-1:导入tkinter和platform,os模块. python版本为 python 3.Xfrom tkinter import *import platform #获取操作系统信息,需要使用这个模块。import os #退出程序要使用os模块下面的 "_exit()"。#函数定义区def get_info(): #定义一个回叫函数,当“获取信息”按钮被点击的时候,会运行这个函数。os_info = platform.platform()bit_info = platform.architecture()[0]py_verison_info = platform.python_version()OS_info_stringvar.set(os_info) # 设置操作系统名称的显示变量bit_info_stringvar.set(bit_info) # 设置操作系位数称的显示变量py_ver_stringvar.set(py_verison_info) # 设置python版本的显示变量def clear_info():#定义一个回叫函数,当“清空信息”按钮被点击的时候,会运行这个函数。OS_info_stringvar.set("") # 操作系统名称的显示变量,清空!bit_info_stringvar.set("") # 操作系位数称的显示变量,清空!py_ver_stringvar.set("") # python版本的显示变量,清空!def exit_app():#定义一个回叫函数,当“退出程序”按钮被点击的时候,会运行这个函数。os._exit(1) #退出程序。 #Step-2: 使用tkinter模块的Tk(), 来创建一个root_window窗口。root_window= Tk() # Tk的T是大写的!#Setp-3: 设置窗口的大小,和标题root_window.geometry("500x380") # 设置窗口大小是200x180; geometry是“几何,形状”的意思。root_window.title("Tkinter示例窗口") # 设置窗口的标题; title翻译成中文是“标题”的意思。root_window .resizable(width=False, height=False)OS_info_stringvar = StringVar() #操作系统名称的显示变量bit_info_stringvar = StringVar() #操作系位数称的显示变量py_ver_stringvar = StringVar() #python版本的显示变量#增加控件部分的代码。#在root_window,顶层窗口上,增加“frame_OS”框架,用来放一个显示操作系统名称的Label和Entry.frame_OS = Frame(root_window)frame_OS.pack(side=TOP, expand=NO, pady=3)OS_name = Label(frame_OS,text="操作系统:", width=10, height=1, anchor=W)OS_name.pack(side=LEFT, expand=NO)OS_value = Entry(frame_OS,width=100, fg="blue", textvariable=OS_info_stringvar)OS_value.pack(side=LEFT, expand=YES, fill=X, padx=5)#在root_window,顶层窗口上,增加“frame_bit”框架,用来放一个显示操作系统的位数的Label和Entry,32bit or 64bit?frame_bit = Frame(root_window)frame_bit.pack(side=TOP, expand=NO, pady=3)bit_name = Label(frame_bit,text="系统位数:", width=10, height=1, anchor=W)bit_name.pack(side=LEFT, expand=NO)bit_value = Entry(frame_bit,width=100, fg="blue", textvariable=bit_info_stringvar)bit_value.pack(side=LEFT, expand=YES, fill=X, padx=5)#在root_window,顶层窗口上,增加“frame_py_version”框架,用来放显示python版本的Label和Entry.frame_py_version = Frame(root_window)frame_py_version.pack(side=TOP, expand=NO, pady=3)py_name = Label(frame_py_version,text="Python 版本:", width=10, height=1, anchor=W)py_name.pack(side=LEFT, expand=NO)py_ver_value = Entry(frame_py_version,width=100,fg="blue",textvariable=py_ver_stringvar)py_ver_value.pack(side=LEFT, expand=YES, fill=X, padx=5)#在root_window,顶层窗口上,增加“frame_button”框架.frame_button = Frame(root_window)frame_button.pack(side=TOP, expand=NO, pady=3)#在“frame_button”框架上,增加“获取信息”按钮button_fetch_info = Button(frame_button,text="获取信息", fg="green",command=get_info)button_fetch_info.pack(side=LEFT, expand=NO, padx=10)#在“frame_button”框架上,增加“清空信息”按钮button_clear_info = Button(frame_button, text="清空信息", command=clear_info)button_clear_info.pack(side=LEFT, expand=NO, padx=10)#在“frame_button”框架上,增加“退出程序”按钮button_clear_exit = Button(frame_button, text="退出程序", fg="red", command=exit_app)button_clear_exit.pack(side=LEFT, expand=NO, padx=10)#Step-4: 使用mainloop()显示窗口root_window.mainloop()