瀏覽代碼

design for text and number inputs

Falko Schindler 4 年之前
父節點
當前提交
be5379aa56
共有 4 個文件被更改,包括 24 次插入10 次删除
  1. 2 2
      main.py
  2. 2 1
      nicegui/elements/button.py
  3. 10 4
      nicegui/elements/input.py
  4. 10 3
      nicegui/elements/number.py

+ 2 - 2
main.py

@@ -14,8 +14,8 @@ with ui.row():
                 ui.checkbox('Check me!', on_change=lambda e: output.set_text('Checked' if e.value else 'Unchecked'))
                 ui.switch('Switch me!', on_change=lambda e: output.set_text('Switched' if e.value else 'Unswitched'))
                 ui.slider(0, 100, on_change=lambda e: output.set_text(e.value))
-                ui.input('Text input', on_change=lambda e: output.set_text(e.value))
-                ui.number('Number input', on_change=lambda e: output.set_text(e.value), value=3.1415927, decimals=2)
+                ui.input(label='Text', on_change=lambda e: output.set_text(e.value))
+                ui.number(label='Number', on_change=lambda e: output.set_text(e.value), value=3.1415927, decimals=2)
             with ui.column():
                 ui.radio(['A', 'B', 'C'], on_change=lambda e: output.set_text(e.value))
                 ui.select(['1', '2', '3'], on_change=lambda e: output.set_text(e.value))

+ 2 - 1
nicegui/elements/button.py

@@ -7,6 +7,7 @@ class Button(Element):
 
     def __init__(self,
                  text: str = '',
+                 *,
                  icon: str = None,
                  icon_right: str = None,
                  color: str = 'primary',
@@ -20,7 +21,7 @@ class Button(Element):
             icon_right=icon_right,
             color=color,
             text_color=text_color,
-            **{key: True for key in design.split()}
+            **{key: True for key in design.split()},
         )
 
         if on_click is not None:

+ 10 - 4
nicegui/elements/input.py

@@ -6,14 +6,20 @@ from ..utils import handle_exceptions, provide_arguments
 class Input(Element):
 
     def __init__(self,
+                 *,
+                 label: str = None,
                  placeholder: str = None,
-                 value: str = None,
+                 value: str = '',
+                 design: str = '',
                  on_change: Callable = None):
 
-        view = jp.QInput(placeholder=placeholder, type='text')
+        view = jp.QInput(
+            label=label,
+            placeholder=placeholder,
+            value=value,
+            **{key: True for key in design.split()},
+        )
 
-        if value is not None:
-            view.value = value
         if on_change is not None:
             view.on('change', handle_exceptions(provide_arguments(on_change, 'value')))
 

+ 10 - 3
nicegui/elements/number.py

@@ -6,15 +6,22 @@ from ..utils import handle_exceptions, provide_arguments
 class Number(Element):
 
     def __init__(self,
+                 *,
+                 label: str = None,
                  placeholder: str = None,
                  value: float = None,
                  decimals: int = None,
+                 design: str = '',
                  on_change: Callable = None):
 
-        view = jp.QInput(placeholder=placeholder, type='number')
+        view = jp.QInput(
+            type='number',
+            label=label,
+            placeholder=placeholder,
+            value=value if decimals is None else round(value, decimals),
+            **{key: True for key in design.split()},
+        )
 
-        if value is not None:
-            view.value = value if decimals is None else round(value, decimals)
         if on_change is not None:
             view.on('change', handle_exceptions(provide_arguments(on_change, 'value')))