Python图形界面(GUI)Tkinter笔记(八):用【Label()】方法制作九九乘数表

ops/2024/10/10 15:54:31/

        主要是使用"config()"方法来体现函数式、模块化的美好风景。把需随时要修改的控件参数定义在“config()”方法里且把它封装在一个函数中,这时只需对这函数内的“config()”方法作出相应的修改即可,无需对主代码或全部代码重新修一遍。这也是Python或高级编程语言的模块化、对象化、函数化主要思想之一。

其余笔记:【Python图形界面(GUI)Tkinter笔记(总目录)】

附事例源码:

'''

#【config()方法】:可通过"config()"方法去设置或重新设置或动态设置控件的一些参数。

#                 控件对象.cofig(控件对象的参数1,控件对象的参数2,......)

import tkinter as tk

import random

def config_label(widget_set):

        ‘’‘设置标签属性的函数’‘’

    m = random.randint(0,3)          # 取一个0到3之间的随机整数

    colors =['blue','red','green','yellow']   # 创建一个背景或前景的颜色列表

    bg_color = colors[m]             # 随机取颜色列表作为背景颜色

    # 此例是把背景、前景、宽度、高度、字体等这些要统一且作相同设置的控件的都调用此函数

    # 通过"config()"方法去设置或重新设置或动态设置控件的一些参数。

    widget_set.config(bg=bg_color,fg='black',height=1,width=6,font="Simsun 12 bold")

#  主体代码

RootWin = tk.Tk()

RootWin.geometry("%dx%d+%d+%d"%(660,260,100,100))

RootWin.title("用【Label()】方法制作九九乘数表!")

for i in range(1,10):

    for j in range(1,i+1):

    # 相同的设置可通过上面函数的“config()”方法批量设置无需逐一写。

    # 如果当控件比较多时且设置都是统一的,那么选择函数模块形式更有效率,要修改统一设置时只才有只需修改函数部分即可。

    # 这个设置方法有点象一些软件中更改主题界面的感觉。

        MathExp = f"{i}X{j}={i*j}"

         # 在控件对象中设置不统一且无规律的参数

        Label_1 = tk.Label(RootWin,text=MathExp,relief='ridge')

        # 批量设置,先控件对象作为实参传进函数中设置,然后再包装定位控件

        config_label(Label_1)

        Label_1.grid(row=i,column=j,ipadx=6,ipady=3)

RootWin.mainloop()

【运行的结果,每运行一次每个式子的背景色都不一定一样】


http://www.ppmy.cn/ops/43928.html

相关文章

python-docx 在word中指定位置插入图片或表格

docx库add_picture()方法不支持对图片位置的设置 1、新建一个1行3列的表格,在中间的一列中插入图片 from docx import Document from docx.shared import Pt from docx.oxml.shared import OxmlElement from docx.enum.text import WD_ALIGN_PARAGRAPHdef add_cen…

LeetCode 题解:112. 路径总和,递归,JavaScript,详细注释

原题链接: 112. 路径总和 解题思路: 如果求根节点到叶子节点的路径上的节点值之和,假设共有3个节点,那么写成计算式是val1 val2 val3 sum那么将计算式转换就可以得到val3 sum - val1 - val2也就是说,问题可以从…

PyTorch Conv2d 前向传递中发生了什么?

在PyTorch中,nn.Conv2d 是一个用于二维卷积操作的模块。当你对一个输入张量(通常是一个四维的,形状为 [batch_size, channels, height, width])调用 forward 方法(或直接使用模块作为函数调用)时,Conv2d 会执行一系列的计算来产生输出张量。 以下是 Conv2d 前向传递中发…

NIO的ByteBuffer和Netty的ByteBuf的性能

在讨论Java NIO的ByteBuffer与Netty的ByteBuf的性能时,需要考虑几个主要的因素,因为性能表现并不是绝对的,而是依赖于具体的使用场景。Netty的ByteBuf设计更加现代,针对网络编程的需求进行了优化,包含了许多ByteBuffer…

C++ RPC ORM 高速解析

支持所有常用编程语 https://capnproto.org/GitHub - capnproto/capnproto: Capn Proto serialization/RPC system - core tools and C library https://capnproto.org/capnproto-c-win32-1.0.2.zip 常用命令: capnp help capnp compile -oc myschema.capn…

LeeCode 3165 线段树

题意 传送门 LeeCode 3165 不包含相邻元素的子序列的最大和 题解 考虑不含相邻子序列的最大和,在不带修改的情况下容易想到,以最后一个元素是否被选取为状态进行DP。从线性递推的角度难以处理待修改的情况。 从分治的角度考虑,使用线段树…

Mac 安装 git

文章目录 前言一、介绍二、下载三、验证四、配置五、Git常用命令六、git提交和撤销工作流程代码提交和提交同步代码撤销和撤销同步 FAQ1.homebrew 下载解决方法一(强烈推荐):解决方法二: 总结 前言 Git 是一个开源的分布式版本控…