1

嗨,我一直在搜索,但找不到任何关于如何在自定义模块的 view_form 部分中添加按钮的教程。我想添加一个按钮并让它调用我每次单击它时所做的方法。

以 xml 视图形式:

<label name="fieldstring"/>
<field name="fieldstring"/>
 <button name="dosomething"/>

代码:

def dosomething(cls,records):
    #treatement

有没有使用与治疗相关的按钮的示例模块?

4

1 回答 1

2

为了向视图添加按钮,您必须执行 3 个步骤:

将按钮添加到 ModelView 类的 _buttons 字典中。通常这是在你的类的setup方法中完成的。您可以在此处定义图标和状态(例如,当按钮不可见时)。如果不需要,您可以使用空字典定义它。

例如:

@classmethod 
def __setup__(cls):
   super(Class, cls).__setup__()    
   cls._buttons.update({
          'mybutton': {},
          })

更复杂的示例可以在 tryton 模块中找到,例如:

http://hg.tryton.org/modules/account_invoice/file/84a41902ff5d/invoice.py#l224

声明您的方法并用 ModelView.button 装饰它(以检查对该按钮的访问权限)。例如:

@classmethod
@ModelView.button
def mybutton(cls, records)
    #DO whatever you want with records

请注意,名称方法必须是您在步骤 1 中用作 _buttons 字典的键的方法。

最后将其添加到视图中。您可以找到所有可用于的属性:

http://doc.tryton.org/3.2/trytond/doc/topics/views/index.html?highlight=button#button

请注意,字符串和名称属性是必需的。

此外,名称必须是要调用的方法的名称,在步骤 2 中定义。

您可以在以下位置找到一些示例:

http://hg.tryton.org/modules/account_invoice/file/84a41902ff5d/view/invoice_form.xml#l51

于 2014-08-08T13:57:37.283 回答