Beispiel #1
0
def get_control_by_type(param):
    if isinstance(param, tuple):
        options = param[1:]
        param = param[0]
    else:
        options = ()

    if param == 'str':
        result = QLineEdit()
        if 'pwd' in options:
            result.setEchoMode(QLineEdit.Password)

        if 'optional' in options:
            result.setPlaceholderText('(Optional)')
    elif param == 'big_str':
        result = QPlainTextEdit()
    elif param == 'label':
        result = QLabel()
        if 'url' in options:
            result.setTextFormat(Qt.RichText)
            result.setTextInteractionFlags(Qt.TextBrowserInteraction)
            result.setOpenExternalLinks(True)
    elif param == 'checkbox':
        result = QCheckBox()
    else:
        raise RuntimeError()

    return result