+ if (line_edit_)
+ return line_edit_;
+
+ if (!getter_)
+ return nullptr;
+
+ Glib::VariantBase variant = getter_();
+ if (!variant.gobj())
+ return nullptr;
+
+ line_edit_ = new QLineEdit(parent);
+
+ update_widget();
+
+ if (auto_commit)
+ connect(line_edit_, SIGNAL(textEdited(const QString&)),
+ this, SLOT(on_text_edited(const QString&)));
+
+ return line_edit_;