如何利用tkinter帮Python设计介面(2)-按钮、标籤、变数

前言:

透过简单的加减法,让自己熟悉如何活用tkinter的特殊变数。

工作环境:

-Windows 10
-Anaconda 2020.02
-Python 3.6.10
-Spyder 4.1.1

教程(1)-建立并布置物件:

如何建立tkinter的物件,并且布置在视窗上。
http://img2.58codes.com/2024/20124766LB688NXRKd.jpg

# -*- coding: utf-8 -*-"""Spyder EditorThis is a temporary script file."""# 汇入函式库import tkinter as tk# 宣告root = tk.Tk()# 视窗标题root.title('Lesson 1')# 视窗初始大小root.geometry('800x600')# 视窗[左右, 上下]是否可拉大拉小,若都为0则视窗右上角的最大化按钮会无法点击root.resizable(0, 1)# 建议标籤lab_result = tk.Label(root, text='666')# 建立按钮bt_plus = tk.Button(root, text='+1')bt_min = tk.Button(root, text='-1')# 为物件分配位置lab_result.pack()# 自动布置bt_plus.pack()bt_min.place(x=387, y=75)# 手动布置# 自动刷新画面root.mainloop()

教程(2)-如何为物件绑定事件并且宣告变数:

示範透过按钮来变更边谦上显示的数字,IntVar()是用来显示加减结果的,因为我们无法直接用一般变数来改变标籤显示结果:
http://img2.58codes.com/2024/20124766E1Rxn3bLaL.jpg

# -*- coding: utf-8 -*-"""Spyder EditorThis is a temporary script file."""# 汇入函式库import tkinter as tkdef plus_():    global k    k = k + 1    result.set(k)    def min_():    global k    k = k - 1    result.set(k)   # 宣告root = tk.Tk()# 视窗标题root.title('Lesson 2')# 视窗初始大小root.geometry('800x600')# 视窗[左右, 上下]是否可拉大拉小,若都为0则视窗右上角的最大化按钮会无法点击root.resizable(0, 1)# 定义变数kk = 0# 定义tkinter专属变数resultresult = tk.IntVar()# 将变数k单次传值至tkinter专属变数resultresult.set(k)# 建立标籤lab_result = tk.Label(root, text='textvariable有优先权,所以这句不会显示', textvariable=result)# 建立按钮,并且绑定事件bt_plus = tk.Button(root, text='+1', command=plus_)bt_min = tk.Button(root, text='-1', command=min_)# 为物件分配位置lab_result.pack()# 自动布置bt_plus.pack()bt_min.place(x=387, y=75)# 手动布置# 自动刷新画面root.mainloop()

当然还有StrVar()可以用,只是记得要用int()作转换呦:

# -*- coding: utf-8 -*-"""Spyder EditorThis is a temporary script file."""# 汇入函式库import tkinter as tkdef plus_():    global k    k = k + 1    result.set(int(k))    def min_():    global k    k = k - 1    result.set(int(k))   # 宣告root = tk.Tk()# 视窗标题root.title('Lesson 1')# 视窗初始大小root.geometry('800x600')# 视窗[左右, 上下]是否可拉大拉小,若都为0则视窗右上角的最大化按钮会无法点击root.resizable(0, 1)# 定义变数kk = 0# 定义tkinter专属变数resultresult = tk.StringVar()# 将变数k单次传值至tkinter专属变数resultresult.set(int(k))# 建议标籤lab_result = tk.Label(root, text='textvariable有优先权', textvariable=result)# 建立按钮bt_plus = tk.Button(root, text='+1', command=plus_)bt_min = tk.Button(root, text='-1', command=min_)# 为物件分配位置lab_result.pack()# 自动布置bt_plus.pack()bt_min.place(x=387, y=75)# 手动布置# 自动刷新画面root.mainloop()

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章