【问题标题】:how create an option menu in python using tkinter如何使用 tkinter 在 python 中创建选项菜单
【发布时间】:2021-07-20 14:07:42
【问题描述】:

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

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

【问题讨论】:

    标签: python tkinter option


    【解决方案1】:

    方法一:选项菜单

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

    有用的资源: How can I create a dropdown menu from a List in Tkinter?

    示例代码:

    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,即roottext 将显示在选项按钮中,shared variable 包含有关当前是哪个按钮的信息被选中,并且唯一的value 来区分这个单选按钮。

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

    要传入的参数:

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

    关于Radiobutton的有用资源 -

    1. Radio button values in Python Tkinter
    2. 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()
    

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 2012-10-10
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      相关资源
      最近更新 更多