tkinter比较常用的组件

1.输入框组件

输入框(Entry)用来输入单行内容,可以方便地向程序传递用户参数。这里通过一个转换摄氏度和华氏度的小程序来演示该组件的使用。

import tkinter as tk
def btnHelloClicked():
    cd = float(entryCd.get())
    labelHello.config(text="%.2f°C = %.2f°F" % (cd, cd * 1.8 + 32))
root = tk.Tk()
root.title("Entry Test")
labelHello = tk.Label(root, text="Convert °C to °F...", height=5, width=20, fg="blue")
labelHello.pack()
entryCd = tk.Entry(root, text="0")
entryCd.pack()
btnCal = tk.Button(root, text="Calculate", command=btnHelloClicked)
btnCal.pack()
root.mainloop()

本例的代码从1.2.1中修改而来,并新建了一个Entry组件entryCd,text参数设置了输入框的默认值为“0”。当按钮按下后,通过entryCd.get()获取输入框中的文本内容,该内容为字符串类型,需要通过float()函数转换成数字,自后再进行换算并更新label显示内容。

表3 Entry组件常用参数


参数


描述


height


组件的高度(所占行数)


width


组件的宽度(所占字符个数)


fg


前景字体颜色


bg


背景颜色


show


将Entry框中的文本替换为指定字符,用于输入密码等,如设置 show="*"


state


设置组件状态,默认为normal,可设置为:disabled—禁用组件,readonly—只读

2.单选、复选框

单选框(Radiobutton)和复选框(Checkbutton)分别用于实现选项的单选和复选功能。本例中的代码实现了通过单选框、复选框设置文字样式的功能。

import tkinter as tk
def colorChecked():
    labelHello.config(fg=color.get())
def typeChecked():
    textType = typeBlod.get() + typeItalic.get()
    if textType == 1:
        labelHello.config(font=("Arial", 12, "bold"))
    elif textType == 2:
        labelHello.config(font=("Arial", 12, "italic"))
    elif textType == 3:
        labelHello.config(font=("Arial", 12, "bold italic"))
    else:
        labelHello.config(font=("Arial", 12))
root = tk.Tk()
root.title("Radio & Check Test")
labelHello = tk.Label(root, text="Check the format of text.", height=3, font=("Arial", 12))
labelHello.pack()
color = tk.StringVar()#定义一个字符串变量
tk.Radiobutton(root, text="Red", variable=color, value="red",
               command=colorChecked).pack(side=tk.LEFT)
tk.Radiobutton(root, text="Blue", variable=color, value="blue",
               command=colorChecked).pack(side=tk.LEFT)
tk.Radiobutton(root, text="Green", variable=color, value="green",
               command=colorChecked).pack(side=tk.LEFT)
typeBlod = tk.IntVar()#定义整型变量
typeItalic = tk.IntVar()#定义整型变量
tk.Checkbutton(root, text="Blod", variable=typeBlod, onvalue=1,
               offvalue=0, command=typeChecked).pack(side=tk.LEFT)
                #onvalue代表复选框选中时整型变量的值
tk.Checkbutton(root, text="Italic", variable=typeItalic, onvalue=2,
               offvalue=0, command=typeChecked).pack(side=tk.LEFT)
root.mainloop()

在代码中,文字的颜色通过Radiobutton来选择,同一时间只能选择一个颜色。在三个Red、Blue和Green三个单选框中,定义了同样的变量参数color,选择不同的单选框会为该变量赋予不同的字符串值,内容即为对应的颜色。

任何单选框被选中都会触发colorChecked()函数,将标签修改为对应单选框表示的颜色。

表4 Radiobutton组件常用参数


参数


描述


variable


单选框索引变量,通过变量的值确定哪个单选框被选中。一组单选框使用同一个索引变量


value


单选框选中时变量的值


command


单选框选中时执行的命令(函数)

文字的粗体、斜体样式则由复选框实现,分别定义了typeBlod和typeItalic变量来表示文字是否为粗体和斜体。

当某个复选框的状态改变时会触发typeChecked()函数。该函数负责判断当前那些复选框被选中,并将字体设置为对应的样式。

表5 Checkbutton组件常用参数


参数


描述


variable


复选框索引变量,通过变量的值确定哪些复选框被选中。每个复选框使用不同的变量,使复选框之间相互独立


onvalue


复选框选中(有效)时变量的值


offvalue


复选框未选中(无效)时变量的值


command


复选框选中时执行的命令(函数)

3.消息窗口

消息窗口(messagebox)用于弹出提示框向用户进行告警,或让用户选择下一步如何操作。消息框包括很多类型,常用的有info、warning、error、yeno、okcancel等,包含不同的图标、按钮以及弹出提示音。下面的代码演示了各消息框的运行效果,大家可以自己一一尝试。

import tkinter as tk
from tkinter import messagebox as msgbox
def btn1_clicked():
    msgbox.showinfo("Info", "从前慢!")
def btn2_clicked():
    msgbox.showwarning("Warning", "不要在月亮上喝酒!")
def btn3_clicked():
    msgbox.showerror("Error", "输入可能有错误!")
def btn4_clicked():
    msgbox.askquestion("Question", "你要吃香蕉还是苹果?")
def btn5_clicked():
    msgbox.askokcancel("OkCancel", "确定穿越到唐朝吗?")
def btn6_clicked():
    msgbox.askyesno("YesNo", "确定去买衣裳?")
def btn7_clicked():
    msgbox.askretrycancel("Retry", "别气馁,再来一次!")
root = tk.Tk()
root.title("消息框测试")
btn1 = tk.Button(root, text="showinfo", command=btn1_clicked)
btn1.pack(fill=tk.X)
btn2 = tk.Button(root, text="showwarning", command=btn2_clicked)
btn2.pack(fill=tk.X)
btn3 = tk.Button(root, text="showerror", command=btn3_clicked)
btn3.pack(fill=tk.X)
btn4 = tk.Button(root, text="askquestion", command=btn4_clicked)
btn4.pack(fill=tk.X)
btn5 = tk.Button(root, text="askokcancel", command=btn5_clicked)
btn5.pack(fill=tk.X)
btn6 = tk.Button(root, text="askyesno", command=btn6_clicked)
btn6.pack(fill=tk.X)
btn7 = tk.Button(root, text="askretrycancel", command=btn7_clicked)
btn7.pack(fill=tk.X)
root.mainloop()

4.绘图组件

绘图组件(Canvas)可以在GUI中实现2D图形的绘制,相当于画图板。组件内置了多种绘图函数,可以通过简单的2D坐标绘制直线、矩形、圆形、多边形等。本例代码演示了Canvas组件的绘图功能,更多的绘图函数可以查阅Canvas的参考页面。

import tkinter as tk
def drawCircle(self, x, y, r, **kwargs):
    return self.create_oval(x - r, y - r, x + r, y + r, **kwargs)
root = tk.Tk()
root.title("画布测试")
cvs = tk.Canvas(root, width=600, height=400)
cvs.pack()
cvs.create_line(50, 50, 50, 300)
cvs.create_line(100, 50, 200, 300, fill="red", dash=(4, 4), arrow=tk.LAST)
cvs.create_rectangle(200, 50, 400, 200, fill="blue")
cvs.create_oval(450, 50, 550, 200, fill="green")
drawCircle(cvs, 450, 300, 50, fill="red")
cvs.create_polygon(200, 250, 350, 250, 350, 350, 220, 300, fill="yellow")
root.mainloop()

绘图函数的参数都比较好理解,包括基本的坐标和颜色、线型等附加参数。

直线(line),即线段,通过两个端点定义。坐标顺序为x1、y1、x2、y2。

矩形(rectangle)通过对角线上的两个点来定义。

需要注意的是Canvas中没有画圆函数,这里通过绘制椭圆间接实现了绘制圆形的函数drawCircle()。椭圆(oval)是通过外切矩形的对角线两点来定义的。

5.hello tkinter

首先介绍一个tkinter的基本例子,在IDLE中新建hello_tkinter.py,代码如下:

import tkinter as tk
# 建立tkinter窗口,设置窗口标题
root = tk.Tk()
root.title("Hello Test")
# 在窗口中创建标签
labelHello = tk.Label(root, text="Hello Tkinter!")
labelHello.pack()
# 运行并显示窗口
root.mainloop()

表1 Label组件常用参数


参数


描述


height


组件的高度(所占行数)


width


组件的宽度(所占字符个数)


fg


前景字体颜色


bg


背景颜色


justify


多行文本的对齐方式,可选参数为: LEFT、 CENTER、RIGHT


padx


文本左右两侧的空格数(默认为1)


pady


文本上下两侧的空格数(默认为1)

6.按钮组件

按钮组件(Button)是tkinter最常用的图形组件之一,通过Button可以方便地与用户进行交互。下列代码实现了通过触发按钮事件(按下按钮)来执行指定操作(改变标签内容)的例子。

import tkinter as tk
def btnHelloClicked():
    labelHello.config(text="Hello tkinter!")
root = tk.Tk()
root.title("Button Test")
labelHello = tk.Label(root, text="Press the button...", height=5, width=20, fg="blue")
labelHello.pack()
btn = tk.Button(root, text="Hello", command=btnHelloClicked)
btn.pack()
root.mainloop()

代码中定义了btnHelloClicked()函数,并通过给Button的command属性赋值来指定按钮按下时执行btnHelloClicked()函数中的代码的功能。在该函数中,通过labelHello.config()更改了label的text参数,即更改了标签的文字内容。

表2 Button组件基本参数


参数


描述


height


组件的高度(所占行数)


width


组件的宽度(所占字符个数)


fg


前景字体颜色


bg


背景颜色


activebackground


按钮按下时的背景颜色


activeforeground


按钮按下时的前景颜色


justify


多行文本的对齐方式,可选参数为: LEFT、 CENTER、RIGHT


padx


文本左右两侧的空格数(默认为1)


pady


文本上下两侧的空格数(默认为1)

以上内容来自于:https://blog.csdn.net/wuxiushu/article/details/52516652

原文地址:https://www.cnblogs.com/yibeimingyue/p/9395118.html

时间: 2024-10-15 03:54:17

tkinter比较常用的组件的相关文章

没事抽空学——常用界面组件属性

android:latout_width fill_parent 设置组件宽高,fill和wrap相同 match_parent wrap_content android:text 组件中文字 组件中文字 android:ems 数值和长度单位 英文字M的数倍 android:inputType text/number/date/time... 文字类型 android:background example:ff0000 6或6十六位进制数设置底色 android:textSize 数值 设置文

【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件

常用编辑器组件 unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成.常用的编辑器可分为两种:原有组件和拓展组件.原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能. 摄像机 摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示.摄像机组件的参数如下: clear flags:背景显示内容,默认的是skybox.前提是必须在render settings 中设置天空盒子材质. background:背景显示颜色,如果没

React Native常用第三方组件汇总--史上最全 之一

把我认为最好的知识,拿来与他人分享,是这一生快事之一! React Native 项目常用第三方组件汇总: react-native-animatable 动画 react-native-carousel 轮播 react-native-countdown 倒计时 react-native-device-info 设备信息 react-native-fileupload 文件上传 react-native-icons 图标 react-native-image-picker 图片选择器 reac

1.1.1. 常用界面组件使用

1.1.1. 常用界面组件使用 功能 代码参考 {{属性名}} 数据绑定对象,例如{{attr1}}这里会自动绑定控制层$scope.attr1.此标签可以出现在页面调用的js函数中,注意不能使用双引号和单引号了,如<a ng-click="gotoDetail({{item.planserialno}})">立即投资</a> ng-click 标签的点击事件,<a ng-click="testService()">test<

5分钟掌握8个常用交互组件,轻松进阶原型设计

原型设计离不开组件,如果原型是房子,那么组件就是水泥和砖块.本文将为您介绍八个最常用的交互组件,现在就打开Mockplus试试吧! 一.弹出菜单 弹出菜单是原型设计中最常用的组件,许多组件的使用方法也与它类似,熟练使用弹出菜单将会给您带来莫大的帮助.接下来我们从实际案例来看一看如何使用弹出菜单. 1. 随意拖出一个组件,这里我们以Mockplus中的按钮组件为例. 2.拖出弹出菜单组件,将按钮右上角的链接点与菜单组件相连. 3.双击弹出菜单以编辑菜单位置及内容. 二.弹窗 弹窗与弹出面板的操作步

Vue最常用的组件通讯有三种:父-&gt;子组件通讯、子-&gt;父组件通讯,兄弟组件通讯.(template用的pug模板语法)

Vue最常用的组件通讯有三种:父->子组件通讯.子->父组件通讯,兄弟组件通讯.(template用的pug模板语法) 1.父->子组件通讯 父->子组件通讯,是通过props进行数据传递,并且具有这几个特性,单向传递,子组件接收的数据不可以更改,如果更改,会发出警告,每次父组件更新时,子组件的所有 prop 都会更新为最新值. 1 父组件 2 <template lang="pug"> 3 .father 4 Children(:name='msg

GUI的最终选择 Tkinter(六):Canvas组件

Canvas组件,是一个可以让你任性的组件,一个可以让你随心所欲地绘制界面的组件.Canvas是一个通用的组件,它通常用于显示和编辑图形,可以用它来绘制直线,圆形,多边形,甚至是绘制其他组件. 在Canvas组件上绘制对象,可以用creat_xxx()方法(xxxvia表示对象类型,例如直线line,矩形rectangle和文本text等). 1 from tkinter import * 2 3 4 root = Tk() 5 w = Canvas(root,width=200,height=

TKinter的常用组件

python提供了多个图形开发界面的库,几个常用Python GUI库如下: Tkinter: Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程

Android常用UI组件 - Button

按钮(Button)是Android当中一个常用的UI组件,很小但是在开发中最常用到.一般通过与监听器结合使用,从而触发一些特定事件. Button继承了TextView.它的功能就是提供一个按钮,这个按钮可以供用户点击,当用户对按钮进行操作的时候,触发相应事件,如点击,触摸.一 般对于一个按钮而言,用的最多的就是点击事件,Button间接继承自View,而Android UI中的所有事件,都是定义在View中的. 实例:ButtonDemo 运行效果: 代码清单: 布局文件:main.xml