Source code for qargparser.string

from .Qt import QtWidgets, QtCore
from .arg import Arg

[docs]class String(Arg): """ String argument widget. :param default: The default value, defaults to "" :type default: str, optional :param placeHolder: The place holder text, defaults to "" :type placeHolder: str, optional :return: The new instance :rtype: :class:`~qargparser.string.String` instance """ def create(self): default = self._data['default'] if "enum" in self._data: enum = self._data['enum'] wdg = QtWidgets.QComboBox() wdg.addItems(enum) if default is not None and default in enum: idx = wdg.findText(default, QtCore.Qt.MatchExactly) wdg.setCurrentIndex(idx) else: idx = wdg.currentIndex() text = wdg.itemText(idx) self._data['default'] = text self._write = lambda x: wdg.setCurrentIndex(wdg.findText(x, QtCore.Qt.MatchExactly)) self._read = lambda: wdg.itemText(wdg.currentIndex()) wdg.currentIndexChanged.connect(lambda x: self.on_changed(wdg.itemText(x))) else: wdg = QtWidgets.QLineEdit() wdg.setText(self._data['default']) #Info if isinstance(self, Info): wdg.setReadOnly(True) else: wdg.setPlaceholderText(self._data['placeHolder']) self._write = wdg.setText self._read = wdg.text wdg.editingFinished.connect(lambda: self.on_editing_finished(wdg)) self.wdg = wdg return wdg def reset(self): self._write(self._data['default']) if not isinstance(self, Info): self.wdg.setPlaceholderText(self._data['placeHolder']) self.changed.emit(None) def on_editing_finished(self, wdg): text = wdg.text() self.on_changed(text)
[docs]class Info(String): """ Info argument widget. The value is on read-only mode. :param default: The default value, defaults to "" :type default: str, optional :return: The new instance :rtype: :class:`~qargparser.string.Info` instance """