本文整理汇总了Python中widget.screen.Screen.add_view_custom方法的典型用法代码示例。如果您正苦于以下问题:Python Screen.add_view_custom方法的具体用法?Python Screen.add_view_custom怎么用?Python Screen.add_view_custom使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类widget.screen.Screen
的用法示例。
在下文中一共展示了Screen.add_view_custom方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: dialog
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import add_view_custom [as 别名]
class dialog(object):
def __init__(self, arch, fields, state, name, parent=None):
buttons = []
self.states=[]
default=-1
if not parent:
parent = service.LocalService('gui.main').window
self.dia = gtk.Dialog('OpenERP', parent,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
for x in state:
but = gtk.Button(x[1])
but.show()
if len(x) >= 3:
icon = gtk.Image()
icon.set_from_stock(x[2], gtk.ICON_SIZE_BUTTON)
but.set_image(icon)
self.dia.add_action_widget(but, len(self.states))
if len(x) >= 4 and x[3]:
but.set_flags(gtk.CAN_DEFAULT)
default = len(self.states)
self.states.append(x[0])
if default >= 0:
self.dia.set_default_response(default)
val = {}
for f in fields:
if 'value' in fields[f]:
val[f] = fields[f]['value']
self.screen = Screen('wizard.'+name, view_type=[], window=self.dia, is_wizard=True)
self.screen.new(default=False)
self.screen.add_view_custom(arch, fields, display=True)
self.screen.current_model.set(val)
x,y = self.screen.screen_container.size_get()
width, height = parent.get_size()
self.screen.widget.set_size_request(min(width - 20, x + 20),
min(height - 60, y + 25))
self.screen.widget.show()
self.dia.vbox.pack_start(self.screen.widget)
self.dia.set_title(self.screen.current_view.title)
self.dia.show()
def run(self, datas={}):
while True:
res = self.dia.run()
self.screen.current_view.set_value()
if self.screen.current_model.validate() or (res<0) or (self.states[res]=='end'):
break
self.screen.display()
if res<len(self.states) and res>=0:
datas.update(self.screen.get())
self.dia.destroy()
return (self.states[res], datas)
else:
self.dia.destroy()
self.screen.destroy()
return False