我想創建一些具有相同配置的 OptionMenus,我找到了這個示例:
class MyOptionMenu(OptionMenu):
def __init__(self, master, status, *options):
self.var = tk.StringVar(master)
self.var.set(status)
OptionMenu.__init__(self, master, self.var, *options)
self.config(font=('calibri',(10)),bg='white',width=12)
self['menu'].config(font=('calibri',(10)),bg='white')
從我的主要代碼中,我這樣稱呼它:
comboBox_value = ['a','b','c']
oM = MyOptionMenu(root,'Select',comboBox_value)
oM.grid(row=5,column=1)
一切都運行,但在 GUI OptionMenu 我得到一個選項 a、b、c 而不是 3 個選項 a 然后 b 然后 c。另外,如果我嘗試像這樣運行它:
oM = MyOptionMenu(root,'Select',comboBox_value, command = func1)
oM.grid(row=5,column=1)
我收到此錯誤:
om = MyOptionMenu(frame_camera,'Select',comboBox_value, command=update_QE)
TypeError: __init__() got an unexpected keyword argument 'command'
它不知道命令是什么......關于如何解決這些問題的任何想法?
uj5u.com熱心網友回復:
您還需要傳遞關鍵字引數:
class MyOptionMenu(OptionMenu):
def __init__(self, master, status, *options, **kwargs): # added **kwargs
self.var = tk.StringVar(master)
self.var.set(status)
OptionMenu.__init__(self, master, self.var, *options, **kwargs) # passed **kwargs
self.config(font=('calibri',10), bg='white', width=12)
self['menu'].config(font=('calibri',10), bg='white')
...
oM = MyOptionMenu(root, 'Select', *comboBox_value, command=func1)
...
從您發布的代碼中,我猜您同時擁有from tkinter import *和import tkinter as tk。不推薦通配符匯入,所以只使用第二個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/409458.html
標籤:
