本文整理汇总了Python中widget.screen.Screen.add_view方法的典型用法代码示例。如果您正苦于以下问题:Python Screen.add_view方法的具体用法?Python Screen.add_view怎么用?Python Screen.add_view使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类widget.screen.Screen
的用法示例。
在下文中一共展示了Screen.add_view方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: dialog
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import add_view [as 别名]
class dialog(object):
def __init__(self, model_name, parent, model=None, attrs=None, model_ctx=None,
window=None, context=None, readonly=False):
if attrs is None:
attrs = {}
if model_ctx is None:
model_ctx = {}
if context is None:
context = {}
if not window:
window = service.LocalService('gui.main').window
self.dia = gtk.Dialog(_('OpenERP'), window,
gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT)
self.window = window
if ('string' in attrs) and attrs['string']:
self.dia.set_title(self.dia.get_title() + ' - ' + attrs['string'])
self.dia.set_property('default-width', 760)
self.dia.set_property('default-height', 500)
self.dia.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
self.dia.set_icon(common.OPENERP_ICON)
self.accel_group = gtk.AccelGroup()
self.dia.add_accel_group(self.accel_group)
self.but_cancel = self.dia.add_button(_('Cancel'), gtk.RESPONSE_CANCEL)
icon = gtk.Image()
icon.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_BUTTON)
self.but_cancel.set_image(icon)
self.but_cancel.add_accelerator('clicked', self.accel_group, gtk.keysyms.Escape, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.but_save_close = self.dia.add_button(_('Save & Close'), gtk.RESPONSE_APPLY)
icon = gtk.Image()
icon.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_BUTTON)
self.but_save_close.set_image(icon)
self.but_save_new = self.dia.add_button(_('Save & New'), gtk.RESPONSE_OK)
icon = gtk.Image()
icon.set_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_BUTTON)
self.but_save_new.set_image(icon)
self.but_save_new.add_accelerator('clicked', self.accel_group, gtk.keysyms.Return, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.context = context
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scroll.set_placement(gtk.CORNER_TOP_LEFT)
scroll.set_shadow_type(gtk.SHADOW_NONE)
self.dia.vbox.pack_start(scroll, expand=True, fill=True)
vp = gtk.Viewport()
vp.set_shadow_type(gtk.SHADOW_NONE)
scroll.add(vp)
self.screen = Screen(model_name, view_type=[], parent=parent,
window=self.dia, readonly=readonly,
context=context)
self.screen.models._context.update(model_ctx)
if not model:
model = self.screen.new(context=context)
else:
self.screen.models.model_add(model)
self.screen.current_model = model
if ('views' in attrs) and ('form' in attrs['views']):
arch = attrs['views']['form']['arch']
fields = attrs['views']['form']['fields']
self.screen.add_view(arch, fields, display=True, context=context)
else:
self.screen.add_view_id(False, 'form', display=True,
context=context)
if not model or model.id is None:
self.screen.make_buttons_readonly()
vp.add(self.screen.widget)
x,y = self.screen.screen_container.size_get()
vp.set_size_request(x,y+30)
self.dia.show_all()
self.screen.readonly = readonly
self.screen.display()
def new(self):
model = self.screen.new(context=self.context)
self.screen.models.model_add(model)
self.screen.current_model = model
self.screen.make_buttons_readonly()
return True
def run(self, datas={}):
end = False
while not end:
res = self.dia.run()
if res in(gtk.RESPONSE_CANCEL, gtk.RESPONSE_DELETE_EVENT):
self.screen.current_model.cancel()
end = (res not in (gtk.RESPONSE_OK, gtk.RESPONSE_APPLY)) or self.screen.current_model.validate()
if not end:
self.screen.display()
self.screen.current_view.set_cursor()
if res in (gtk.RESPONSE_OK, gtk.RESPONSE_APPLY) :
self.screen.current_view.set_value()
model = self.screen.current_model
#.........这里部分代码省略.........