浏览代码

text and number input

Falko Schindler 4 年之前
父节点
当前提交
ad8a83b767
共有 2 个文件被更改,包括 12 次插入1 次删除
  1. 3 1
      main.py
  2. 9 0
      nice_gui.py

+ 3 - 1
main.py

@@ -11,6 +11,8 @@ with ui.card():
             ui.checkbox('Check me!', on_change=lambda e: output.set_text('Checked' if e.value else 'Unchecked'))
             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.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.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.input('Number input', on_change=lambda e: output.set_text(e.value), type='number')
         with ui.column():
         with ui.column():
             ui.radio(['A', 'B', 'C'], on_change=lambda e: output.set_text(e.value))
             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))
             ui.select(['1', '2', '3'], on_change=lambda e: output.set_text(e.value))
@@ -35,4 +37,4 @@ with ui.card():
         plot.update()
         plot.update()
     ui.timer(3.0, update_plot, once=True)
     ui.timer(3.0, update_plot, once=True)
 
 
-ui.run()
+ui.run()

+ 9 - 0
nice_gui.py

@@ -107,6 +107,15 @@ class Ui(Starlette):
             view.on('input', handle_exceptions(provide_arguments(on_change, 'value')))
             view.on('input', handle_exceptions(provide_arguments(on_change, 'value')))
         return Element(view)
         return Element(view)
 
 
+    def input(self, placeholder=None, value=None, type='text', on_change=None):
+
+        view = jp.QInput(placeholder=placeholder, type=type)
+        if value is not None:
+            view.value = value
+        if on_change is not None:
+            view.on('input', handle_exceptions(provide_arguments(on_change, 'value')))
+        return Element(view)
+
     @contextmanager
     @contextmanager
     def plot(self, close=True):
     def plot(self, close=True):