gpt4 book ai didi

python - 如何禁用 OptionMenu 中的单个选项?

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:08 24 4
gpt4 key购买 nike

如果用户从 OptionMenu 列表中选择了一个选项,那么该选项应该被禁用。

示例:如果用户选择“a”,那么选项“a”应该被禁用,然后用户只能选择 b 或 c。我尝试了下面的代码,但它返回了如图所示的错误。我不需要 menubuttonOptionMenu 将满足我的目的,但不是 menubutton

import tkinter as tk
from tkinter import *

class Disable_state(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
va = StringVar()
NAMES = { 'a' : 0, 'b' : 1, 'c' : 2 }
op = list(NAMES.keys())
self.menu = OptionMenu(self.parent, va, *op,command = lambda op: self.disable_option(op))
self.menu.grid(column=0, row=0)
def disable_option(self,op):
self.menu.config(op, state = "disabled")


if __name__ =="__main__":
root= Tk()
o = Disable_state(root)
root.mainloop()

错误是

self.menu.config(op, state = "disabled")
File "C:\Python34\lib\tkinter\__init__.py", line 1319, in configure
return self._configure('configure', cnf, kw)
File "C:\Python34\lib\tkinter\__init__.py", line 1303, in _configure
cnf = _cnfmerge((cnf, kw))
File "C:\Python34\lib\tkinter\__init__.py", line 105, in _cnfmerge
cnf.update(c)
ValueError: dictionary update sequence element #0 has length 1; 2 is required

最佳答案

似乎可以访问子部件菜单,并使用entryconfigure 方法可以禁用条目

self.menu['menu'].entryconfigure(op, state = "disabled")

关于python - 如何禁用 OptionMenu 中的单个选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com