如何解决使用工厂方法的输入小部件工厂类
我有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 举报,一经查实,本站将立刻删除。