资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

Python GUI设计——Button功能按钮

Python 更新时间: 发布时间: 计算机考试归档 最新发布

Python GUI设计——Button功能按钮

目录

1.简介

1.1定时程序设计

1.2颜色选择程序设计

2.使用Lambda表达式

3.建立含图像的功能按钮

4.简易计算器按钮设计

5.设计鼠标光标在功能按钮上的的形状


1.简介

功能按钮也称为按钮,在窗口组件中可以设计在单击功能按钮时,执行某一个特定的动作,这个动作也称为callback方法,也就是说我们可以将功能按钮当作用户与程序沟通的桥梁。功能按钮上面可以有文字,或是和标签一样可以有图像,如果是文字样式的功能按钮,可以设定此文字的字形。它的语法格式如下:

Button(父对象, options, ……)

Button()方法的第一个参数是父对象,表示这个功能按钮将建立在哪一个窗口内。下列是Button()方法内其他常用的options参数。

borderwidth或bd边界宽度默认是两个像素
bg或background背景颜色
command单机功能按钮时,执行此方法

cursor

当鼠标光标移至按钮上时的形状

fg或foreground

前景颜色

font

字形

height

高,单位是字符

highlightbackground

当前功能按钮取得焦点时的背景颜色

highlightcolor

当功能按钮取得焦点时的颜色

image

功能钮上的图像

justify

当有多行文字时,最后一行文字的对齐方式

padx

默认是1,可设置功能按钮与文字的间隔

pady

默认是1,可设置功能按钮的上下的间距

relief

默认是relief=FLAT,可由此控制文字外框

state

默认是state=NORMAL,若设置为DISABLED则以灰阶显示功能按钮,表示暂时无法使用

text

功能按钮名称

underline

可以设置第几个文字有下划线,从0开始算起,默认是-1表示无下划线

width

宽,单位是字符

wraplength

限制每行的文字数,默认是0,表示只有”n”才会换行

当单机功能按钮时可以显示字符串”Hello world”,底色是浅黄色,字符串颜色是黑色

from tkinter import *def msgShow():	label["text"] = "Hello world"	label["bg"] = "lightyellow"	label["fg"] = "black"root = Tk()label = Label(root)     # 创建label标签btn = Button(root, text = "打印消息", command = msgShow)label.pack()btn.pack()root.mainloop()

上述程序是先建立一个不含属性的标签对象label,然后建立一个功能按钮。单机按钮时,会启动msgShow函数,然后此函数会执行标签label的内容。也可以用config()方法一次性设置所有的label属性:

label.config(text = "Hello world", bg = "lightyellow", fg = "black")

 下面新增按钮功能

btn1 = Button(root, text = "结束", width = 20, command = root.destroy)

root.destroy可以关闭root窗口对象,同时结束程序。另一个常用方法是quit,可以让Python Shell内执行的程序结束,但是root窗口则继续执行。

1.1定时程序设计

from tkinter import *counter = 0                                  # 计数的初始值def run_counter(digit):                      # 数字变量内容的变动	def counting():                          # 变动数字方法		global counter                       # 定义这是全局变量		counter += 1		digit.config(text = str(counter))    # 显示数字内容		digit.after(1000, counting)          # 隔一次后调用counting	counting()                                 # 持续调用 root = Tk()digit = Label(root, bg = "lightyellow", fg = "black",	height = 3, width = 10,	font = "黑体 20 bold")digit.pack()run_counter(digit)btn = Button(root, text ="结束", width = 15, command = root.destroy)btn.pack()root.mainloop()

 

1.2颜色选择程序设计

from tkinter import *def yellow():                                  # 自定义颜色背景	root.config(bg = "yellow")def blue():	root.config(bg = "blue")def red():	root.config(bg = "red")root = Tk()root.geometry("500x500")yellowbtn = Button(root, text = "yellow", command = yellow)bluebtn = Button(root, text = "blue", command = blue)redbtn = Button(root, text = "red", command = red)exitbtn = Button(root, text = "Exit", command = root.destroy)yellowbtn.pack(anchor = S, side = RIGHT, padx = 10, pady = 10)bluebtn.pack(anchor = S, side = RIGHT, padx = 10, pady = 10)redbtn.pack(anchor = S, side = RIGHT, padx = 10, pady = 10)exitbtn.pack(anchor = S, side = RIGHT, padx = 10, pady = 10)root.mainloop()

2.使用Lambda表达式

在前文程序中,Yellow按钮和Blue按钮执行相同的工作,但是传递的颜色参数不同,其实这是使用Lambda表达式的好时机。我们可以通过Lambda表达式调用相同的方法,但是传递不同参数的方式简化设计

def bColor(bgColor):	root.config(bg = bgColor)exitbtn = Button(root, text = "Exit", command = root.destroy)bluebtn = Button(root, text = "blue", command = lambda:bColor("blue"))yellowbtn = Button(root, text = "yellow", command = lambda:bColor("yellow"))redbtn = Button(root, text = "red", command = lambda:bColor("red"))

(效果和之前是一样的)

3.建立含图像的功能按钮

一般功能按钮是用文字当作按钮名称,也可以用图像当作按钮名称。若是使用图像当作按钮,在Button()内可以省略text参数设置按钮名称,但在Button()内要增加images参数设置图像对象。

from tkinter import *def msgShow():	label.config(text = "Hello world", bg = "lightyellow", fg = "blue")root = Tk()label = Label(root)image = PhotoImage(file = "2.png")btn = Button(root, image = image, command = msgShow)label.pack()btn.pack()root.mainloop()

4.简易计算器按钮设计

from tkinter import *root = Tk()lab = Label(root, text ="", bg = "yellow", width = 20)btn7 = Button(root, text = "7", width = 3)btn8 = Button(root, text = "8", width = 3)btn9 = Button(root, text = "9", width = 3)btnc = Button(root, text = "*", width = 3)btn4 = Button(root, text = "4", width = 3)btn5 = Button(root, text = "5", width = 3)btn6 = Button(root, text = "6", width = 3)btnj = Button(root, text = "-", width = 3)btn1 = Button(root, text = "1", width = 3)btn2 = Button(root, text = "2", width = 3)btn3 = Button(root, text = "3", width = 3)btna = Button(root, text = "+", width = 3)btn0 = Button(root, text = "0", width = 8)btnd = Button(root, text = ".", width = 3)btne = Button(root, text = "=", width = 3)lab.grid(row = 0, column = 0, columnspan = 4)btn7.grid(row =1, column = 0, padx = 5)btn8.grid(row =1, column = 1, padx = 5)btn9.grid(row =1, column = 2, padx = 5)btnc.grid(row =1, column = 3, padx = 5)btn4.grid(row =2, column = 0, padx = 5)btn5.grid(row =2, column = 1, padx = 5)btn6.grid(row =2, column = 2, padx = 5)btnj.grid(row =2, column = 3, padx = 5)btn1.grid(row =3, column = 0, padx = 5)btn2.grid(row =3, column = 1, padx = 5)btn3.grid(row =3, column = 2, padx = 5)btna.grid(row =3, column = 3, padx = 5)btn0.grid(row =4, column = 0, padx = 5, columnspan = 2)btnd.grid(row =4, column = 2, padx = 5)btne.grid(row =4, column = 3, padx = 5)root.mainloop()

5.设计鼠标光标在功能按钮上的的形状

from tkinter import *def msgShow():	label.config(text = "Hello world", bg = "lightyellow", fg = "blue")root = Tk()label = Label(root)image = PhotoImage(file = "2.png")btn = Button(root, image = image, command = msgShow,	cursor = "plus")label.pack()btn.pack()root.mainloop()

 参考文献:《Python GUI设计tkinter菜鸟编程》洪锦魁著

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1096574.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【Python GUI设计——Button功能按钮】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2