def METHOD_NAME(self, attribute_name, title, tool_tip=None, placeholder=""):
    self[attribute_name] = ClearableLineEdit(placeholder=placeholder)
    self.addRow(title, self[attribute_name])
    if tool_tip is not None:
        self[attribute_name].setToolTip(tool_tip)
    def getter(self):
        value = str(self[attribute_name].text())
        if value == "":
            value = None
        return value
    def setter(self, value):
        if value is None:
            value = ""
        self[attribute_name].setText(str(value))
    self.updateProperty(attribute_name, getter, setter)