用python编写一个图形用户接口GUI

用python编写一个图形用户接口

大多数程序都是图形用户界面,如何用python编写这样的一个界面呢?Python自带了tkinter 模块,可以创建简单的图形用户界面。那么什么是图形化用户界面?

在这里插入图片描述
GUI是图形化用户界面英文的缩写,GUI的英文全称为Graphic User Interface。

1.编写一个窗体

import tkinter as tk

window = tk.Tk()

window.title('窗体')#title() 方法可设置其标题文字
window.geometry('500x300')# 这里的乘号不是 * ,而是小写英文字母 x

l = tk.Label(window,text='这是一行文字',bg = 'Green',font=('黑体',12),width=30,height=2)
l.pack()

window.mainloop()
注意事项:这里的乘号不是 * ,而是小写英文字母 x

运行程序的结果:在这里插入图片描述

2.核心部件

Tkinter中有许多核心部件,下面是一些常用部件的介绍。

2.1按钮(Button)

按钮可以和python中某个函数相关联,点击实现相关功能
下面是调用方法:

b = tk.Button(window,text='hit me')
b.pack()

再将该程序写入

1.编写一个窗体

import tkinter as tk
window = tk.Tk()

window.title('窗体')
window.geometry('500x300')

l = tk.Label(window,text='这是一行文字',bg = 'Green',font=('黑体',12),width=30,height=2)
l.pack()

b = tk.Button(window,text='hit me')
b.pack()

window.mainloop()

运行结果如下:在这里插入图片描述

为了实现点击按钮后就可以修改上面的文字,如何实现这一功能?

2.1.1首先,需要定义变量var

var = tk.StringVar()
var.set("修改这行文字")

这时候,下面这行代码也要修改,需要把var传给text

l = tk.Label(window,text='这是一行文字',bg = 'Green',font=('黑体',12),width=30,height=2)
l.pack()

修改后的代码:

l = tk.Label(window,textvariable=var,bg = 'Green',font=('黑体',12),width=30,height=2)
l.pack()

所有代码如下:

import tkinter as tk

window = tk.Tk()

window.title('窗体')
window.geometry('500x300')

var = tk.StringVar()
var.set("修改这行文字")

l = tk.Label(window,textvariable=var,bg = 'Green',font=('黑体',12),width=30,height=2)
l.pack()

b = tk.Button(window,text='hit me')
b.pack()

window.mainloop()

运行后:
在这里插入图片描述

2.1.2然后,定义函数hit_me

这里引入了一个全局变量on_hit,利用on_hit实现函数hit_me的功能

on_hit = False
def hit_me():
    global on_hit
    if on_hit == False:
        on_hit = True
        var.set("文字被修改啦!")
    else:
        on_hit = False
        var.set("又被修改了一次")

函数定义好了,接下来需要调用这个函数到Button中,那么,如何调用函数呢?这里采用直接调用函数的方法

command =hit_me
正确调用
command =hit_me()
错误调用

参数表达式为“command=函数名”,注意函数名后面不要加括号,也不能传递参数。
我们在Button后面增加了command =hit_me

b = tk.Button(window,text='hit me',command =hit_me)
b.pack()

现在全部代码如下:

import tkinter as tk

window = tk.Tk()

window.title('窗体')
window.geometry('500x300')

var = tk.StringVar()
var.set("修改这行文字")

on_hit = False
def hit_me():
    global on_hit
    if on_hit == False:
        on_hit = True
        var.set("文字被修改啦!")
    else:
        on_hit = False
        var.set("又被修改了一次")

l = tk.Label(window,textvariable=var,bg = 'Green',font=('黑体',12),width=30,height=2)
l.pack()

b = tk.Button(window,text='hit me',font=('黑体',12),width=30,height=1,command = hit_me)
b.pack()

window.mainloop()

运行后界面:在这里插入图片描述
点击后界面:
在这里插入图片描述
再次点击后结果:
在这里插入图片描述
点击第三次结果:后面会陷入循环在这里插入图片描述

2.2输入框

输入框可以让用户输入内容

e = tk.Entry(window,show=None,font=('黑体',12))
e.pack()

在这里插入图片描述
在这里插入图片描述
如果想输入密文可以修改:

e = tk.Entry(window,show="*",font=('黑体',12))
e.pack()

全部代码如下:

import tkinter as tk

window = tk.Tk()

window.title('窗体')
window.geometry('500x300')

var = tk.StringVar()
var.set("修改这行文字")

on_hit = False
def hit_me():
    global on_hit
    if on_hit == False:
        on_hit = True
        var.set("文字被修改啦!")
    else:
        on_hit = False
        var.set("又被修改了一次")

l = tk.Label(window,textvariable=var,bg = 'Green',font=('黑体',12),width=30,height=2)
l.pack()

b = tk.Button(window,text='hit me',font=('黑体',12),width=30,height=1,command = hit_me)
b.pack()

e = tk.Entry(window,show="*",font=('黑体',12))
e.pack()

window.mainloop()
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值