Python2 Macbook OptionMenu 下拉选项 不显示默认值,第一个选项消失的问题

导读:本篇文章讲解 Python2 Macbook OptionMenu 下拉选项 不显示默认值,第一个选项消失的问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 问题 1:下拉选项默认值不显示问题:

Python2 Macbook OptionMenu 下拉选项 不显示默认值,第一个选项消失的问题

self.run_mode = [ SocRunMode.run_soc.value,SocRunMode.run_grr.value]
self.run_mode_var = tk.StringVar()
self.run_mode_var.trace("w", self.onselected_run_mode_menu)
run_mode_option = tk.OptionMenu(right_frame, self.run_mode_var
                                 , *self.run_mode)
run_mode_option.grid(row=0, column=2, pady=10, padx=10)

 

 

如图: 显示参考https://blog.csdn.net/understand_XZ/article/details/102746978 同学的建议把 tk,换成 ttk

增加ttk 引入,并改了 OptionMenu 调用。显示正常

import tkinter as tk
from tkinter import ttk

run_mode_option = ttk.OptionMenu(right_frame, self.run_mode_var , *self.run_mode) 

Python2 Macbook OptionMenu 下拉选项 不显示默认值,第一个选项消失的问题

问题 2: 下拉第一个选项消失,不显示问题:

Python2 Macbook OptionMenu 下拉选项 不显示默认值,第一个选项消失的问题

解决: 参考源码,下拉选择项要设置一个默认值,如不单独设置,选项列表第一个会拿来做默认值:

def __init__(self, master, variable, default=None, *values, **kwargs):

我的解决办法1是:把列表第一项单独拿出来传递,或者

run_mode_option = ttk.OptionMenu(right_frame, self.run_mode_var
                                 , self.run_mode[0], *self.run_mode)

 方法 2: 或者直接写默认值:

run_mode_option = ttk.OptionMenu(right_frame, self.run_mode_var , “SOC”, *self.run_mode)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/101663.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!