问题描述
我有Burkhard Meier的Button工厂的修改版本,需要使用文本字段工厂进行扩展。我需要遵循以下结构:
预期输出:
import tkinter as tk
from tkinter import ttk
from tkinter import Menu
class ButtonFactory():
def createButton(self,type_):
return buttonTypes[type_]()
class ButtonBase():
relief ='flat'
foreground ='white'
def getButtonConfig(self):
return self.relief,self.foreground
class ButtonRidge(ButtonBase):
relief ='ridge'
foreground ='red'
class ButtonSunken(ButtonBase):
relief ='sunken'
foreground ='blue'
class ButtonGroove(ButtonBase):
relief ='groove'
foreground ='green'
buttonTypes = [ButtonRidge,ButtonSunken,ButtonGroove]
以下代码是否是上述代码的正确扩展,以使用名为generateText(..)
的fFactory方法创建具体的Entry小部件Factory类?我的指令说tkinter文本字段是Entry
小部件。
class TextFactory():
def generateText(self):
sv=tk.StringVar()
tx = factory.generateText(0).getTextConfig()[0]
sv.set(tx)
bg = factory.generateText(0).getTextConfig()[1]
action = tk.Entry(self.widgetFactory,textvariable=sv,background=bg,foreground="white")
action.grid(column=1,row=1)'''
那里有Python忍者可以帮助我了解如何执行上述操作以及如何:
-
创建三个名为
text_1
/2
/3
/的具体文本产品,这些产品将被分配textvariable
值'红色类型/蓝色类型/绿色类型'如下图所示。 -
使用
createTextFields()
方法扩展OOP类,以创建工厂对象。 -
我也收到了下面的代码,但是我不知道如何实现它来解决上面的问题。
#Entry field 1 sv=tk.StringVar() tx = factory.createText(0).getTextConfig()[0] sv.set(tx) bg = factory.createText(0).getTextConfig()[1] action = tk.Entry(self.widgetFactory,foreground="white") action.grid(column=1,row=1)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)