首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问OptionMenu项目- Tkinter

访问OptionMenu项目- Tkinter
EN

Stack Overflow用户
提问于 2020-11-27 03:08:59
回答 1查看 72关注 0票数 1

我有四个OptionMenu,每个OptionMenu都填充了一个条目列表(每个菜单都一样)。

代码语言:javascript
复制
from tkinter import *

def selected (event):
    print (clicked.get())

window = Tk()

entries = ["a", "b", "c", "d"]

for i in range (4):
    window.rowconfigure (i, minsize = 5)
    a_frame = Frame (master = window)
    a_frame.grid (row = i, column = 0, padx = 1, pady = 1)
    clicked = StringVar()
    clicked.set (entries[0])
    a_menu = OptionMenu (a_frame, clicked, *entries, command = selected)
    a_menu.pack()

window.mainloop()

我试图访问从每个OptionMenu中选择的值,但只打印底部OptionMenu中的值。当我从其他下拉菜单中选择一些值时,操作是“检测到的”,但只打印底部OptionMenu中的值。如果你尝试运行上面的代码,你会很容易理解我的意思。如何访问从每个OptionMenu中选择的每个值?首先要感谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-27 04:50:21

OptionMenu构造函数:

OptionMenu(父级,变量,choice1,choice2,...)

代码语言:javascript
复制
from tkinter import Tk, StringVar, OptionMenu

def callback(arg):
    print(arg)

root = Tk()
option = StringVar()
op = OptionMenu(root, option, 'a', 'b', 'c', 'd', command=callback)
op.grid()
option.set('a')
root.mainloop()

这是你可以开始的基础。当调用回调函数时,它将您的选择作为参数传递,并且只将参数打印到控制台。

希望你现在已经有了一个基本的了解。

因此,在本例中,您需要打印参数,而不是"print (clicked.get())“

试试这个:

代码语言:javascript
复制
from tkinter import *

def selected (event):
    print (event)

window = Tk()

entries = ["a", "b", "c", "d"]

for i in range (4):
    window.rowconfigure (i, minsize = 5)
    a_frame = Frame (master = window)
    a_frame.grid (row = i, column = 0, padx = 1, pady = 1)
    clicked = StringVar()
    clicked.set (entries[0])
    a_menu = OptionMenu (a_frame, clicked, *entries, command = selected)
    a_menu.pack()

window.mainloop()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65027966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档