Pin-Jiun / Python

Python Document
0 stars 0 forks source link

16-Pass Arguments to Tkinter and DatatypeVar #16

Open Pin-Jiun opened 1 year ago

Pin-Jiun commented 1 year ago

When a user hits the button on the Tkinter Button widget, the command option is activated. In some situations, it’s necessary to supply parameters to the connected command function.

Method 1: Pass Arguments to Tkinter Button using the lambda function

Import the Tkinter package and create a root window. Give the root window a title(using title()) and dimension(using geometry()), now Create a button using (Button()). Use mainloop() to call the endless loop of the window. lambda function creates a temporary simple function to be called when the Button is clicked.

# importing tkinter
import tkinter as tk

# defining function

def func(args):
    print(args)

# create root window
root = tk.Tk()

# root window title and dimension
root.title("Welcome to GeekForGeeks")
root.geometry("380x400")

# creating button
btn = tk.Button(root, text="Press", command=lambda: func("See this worked!"))
btn.pack()

# running the main loop
root.mainloop()

Method 2: Pass Arguments to Tkinter Button using partial

Import the Tkinter package and create a root window. Give the root window a title(using title()) and dimension(using geometry()), now Create a button using (Button()). Use mainloop() to call the endless loop of the window. command=partial returns a callable object that behaves like a func when it is called.

# importing necessary libraries
from functools import partial
import tkinter as tk

# defining function

def function_name(func):
    print(func)

# creating root window
root = tk.Tk()

# root window title and dimension
root.title("Welcome to GeekForGeeks")
root.geometry("380x400")

# creating button
btn = tk.Button(root, text="Click Me", command=partial(
    function_name, "Thanks, Geeks for Geeks !!!"))
btn.pack()

# running the main loop
root.mainloop()

https://www.geeksforgeeks.org/how-to-pass-arguments-to-tkinter-button-command/

Pin-Jiun commented 1 year ago

使用 DatatypeVar object 來對GUI物件操作

Boolean() 布林值變數,True是1, False是0 DoubleVar() 浮點數,預設值為 0.0 IntVar() 整數,預設值為 0 StringVar() 字串,預設值為空字串" "

from tkinter import * 

root=Tk() 

def method2(): 
    x="Done it !" 
    m.set(x) 

m=StringVar() 
b1=Button(root, text="Click", command=method2).pack() 
lb1=Label(root, text="...", textvariable=m).pack() 

root.mainloop()