韓佩蓁python全域變數global和判斷if

  from tkinter import * #或者import tkinter as tk
import math#輸入數學MATH函式庫
tk = Tk()           #建構視窗名為tk
tk.geometry('1200x400')#視窗 寬1200像素
tk.title("韓佩蓁python tkinter三角函數if_else判斷")
canvas = Canvas(tk, width=1200, height=400, bg='PINK')
canvas.grid(row=0,column=0,padx=5,pady=5,columnspan=3)
delay=3 # milliseconds, 1/1000秒
x1,y1,z1=0,200,10#python特徵,多變數=對等值
h=190      #上下範圍,相當於數學1到-1
def LH():
    global x1, y1, z1#global全球,local當地
    x2 = x1 + 1 #換到下個+1
    y2=200 - h*math.sin(0.02*x2)
    z2=200 - h*math.cos(0.02*x2)
    L1=canvas.create_line(x1,y1,x2,y2,fill='BLUE',width=10)
    L2=canvas.create_line(x1,z1,x2,z2,fill='yellow',width=10)  
    if (x2 < 1200): #沒有超過, 記得將 "小於" 改成運算
        x1,y1,z1=x2,y2,z2#下一個起點是現在終點
        canvas.after(delay,LH)#每隔delay執行
    else:
        canvas.delete("all")
        x1,y1,z1=0,200,10#下一個起點是回到原點
        canvas.after(delay,LH)#return沒你的事,滾回你老家
LH()            #執行LauHou老猴
tk.mainloop()
mainloop(主循环)是图形用户界面(GUI)编程中的核心概念,尤其在 Python 的 Tkinter 等库中,它是一个事件循环,负责持续监听和处理用户交互(如点击、按键)及系统事件,直到程序被关闭,它让 GUI 程序保持运行并响应用户操作。 
mainloop 的核心作用:
  1. 事件监听:持续不断地等待鼠标点击、键盘输入、窗口大小变化、关闭请求等事件发生。
  2. 事件处理:当事件发生时,找到并执行与该事件关联的函数(回调函数),如按钮点击执行的指令。
  3. 生命周期管理:启动并维持应用程序的运行状态,直到用户关闭窗口或调用 destroy() 方法结束程序。
  4. 阻塞调用mainloop() 一旦被调用,程序就会“卡”在这个函数上,不再执行后续代码,直到循环结束。 
简单比喻:
  • mainloop 就像一个餐厅的经理,不断地接待客人(事件),处理客人的需求(点击按钮、输入文字),然后再等待下一位客人,周而复复,直到打烊(关闭窗口)。 
在 Python Tkinter 中的使用(示例):
python
import tkinter as tk

# 1. 创建主窗口
root = tk.Tk()
root.title("我的第一个GUI")

# 2. 设置窗口内容 (可选)

# 3. 启动主循环,让窗口显示并响应事件
root.mainloop() # <--- 就在这里启动事件循环
调用 root.mainloop() 之后,这个窗口就会一直显示,等你点击关闭按钮,mainloop 才会结束,程序才会退出。 

留言

熱門文章