This module Interconnects a couple of flet inputs, actually, it combines the value of the inputs and manages them. This module can be used to make "pin inputs" and so on.
first of all get the project from pypi or github:
$ git clone https://github.com/naderidev/linkedinputs
$ pip install linkedinputs
The LinkedInputs
class is the mother class and the basic form of the module.
this class just have the input type rule.
page
inputs
: the list of Inputs to be connectedaccept_type
: an instance ofAcceptTypes
which specifies the content type of inputson_change
: on inputs value changed. actually, it returns the value of each input in a liston_error
: on user entered the wrong value typeon_complete
: on all inputs filledplace
: aRow
orColumn
control without any child controls
-
errors
: only returns the error of each input in a list -
flash_errors()
: returns the errors then clears the errors -
value
: returns the value of each input and also it has a setter which you can set a specific value for each input. for example:... linkedinputs.value = ['124' , '457' , '478'] ...
this is an example is when you have 3 inputs which they require ONLY_NUMBER
-
string_value
: combines the value of inputs and returns it as a string
the RegularLinkedInputs
class has defined new rules (like accept_length) for the LinkedInputs
class and ordered it.
- all
LinkedInputs
properties accept_length
: the value lenght of each inputone_by_one
: o to the next input on current, filled
source avliable in examples/bankcard_example.py
In this example when you enter 6 numbers, the associated bank name is displayed (the banks are Iranian)
the PinInputT1
is using RegularLinkedInputs
and it is used to making password inputs
page
accept_type
: an instance ofAcceptTypes
which specifies the content type of inputscorrect_answer
: the correct password for validatingon_complete
: on all inputs filledaccept_length
: the value lenght of each input
- all
RegularLinkedInputs
methods is_correct
: is password correct
Note: if you want to customize the piniput inputs just ceate a class and extend PinInputT1 then override pin_inputs() method with your own inputs. for example:
class MyPinInput(PinInputT1):
def pin_inputs(self):
return [
TextField(
...
) for _ in range(...)
]
source avliable in examples/pininput_t1_example.py
Hope this package be useful for you :)