如何使用 tkinter 在 python 中创建选项菜单

how create an option menu in python using tkinter

如何在 tkinter 中创建选项字段?例如,在 html 中是这样的:

<select>
  <option value="Option1">Option1</option>
  <option value="Option2">Option2</option>
  <option value="Option3">Option3</option>
  <option value="Option4">Option4</option>
</select>

方法一:选项菜单

第一种方法是使用tkinter中的OptionMenu。您将必须创建一个包含所有所需选项的列表。然后你需要一个 variable 来保存关于 当前选择哪个按钮的信息。

有用的资源:

示例代码:

from tkinter import *

root = Tk()
root.geometry("300x300")

OPTIONS = [
"Option 1",
"Option 2",
"Option 3"
] #etc

variable = StringVar()
variable.set(OPTIONS[0]) # default value

w = OptionMenu(root, variable, *OPTIONS)
w.pack()

root.mainloop()

输出:

方法二:单选按钮

您可以在 tkinter 中使用 Radiobutton 来获得选项。

需要传入的参数是window也就是root,要在选项按钮中显示的text,一个shared variable有关当前选择了哪个按钮的信息,以及用于区分此单选按钮的唯一value

注意:每个单选按钮应该有不同的唯一性value否则将选择多个单选按钮。

需要传入的参数:

button = Radiobutton(root, text="Name on Button", variable = “shared variable”, value = “values of each button”)

关于Radiobutton-

的有用资源
  1. https://www.geeksforgeeks.org/radiobutton-in-tkinter-python/#:~:text=The%20Radiobutton%20is%20a%20standard,calls%20that%20function%20or%20method.

示例代码:

from tkinter import *
import tkinter as tk

root = Tk()
root.geometry("300x300")

payment_method_label=Label(root, text="Select Payment Method:")

payment_method = StringVar()
payment_method.set("card")

cards = Radiobutton(root, text="Debit/Credit Card", variable=payment_method, value="card").pack(anchor=tk.W)
wallet = Radiobutton(root, text="Payment Wallet", variable=payment_method, value="wallet").pack(anchor=tk.W)
netbanking = Radiobutton(root, text="Net Banking", variable=payment_method, value="net banking").pack(anchor=tk.W)

root.mainloop()

输出: