
рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдЕрдм, рд╢рд╛рдпрдж, рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ, рджреЛ рдЪреМрдЦрдЯреЗ рд╣рд╛рд╡реА рд╣реИрдВ - рдЬрд╝рдорд╛рд░рд┐рди рдФрд░ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ред рдЬрд╝рд╛рдорд░реАрди - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХрд╛ "рджрддреНрддрдХ рдкреБрддреНрд░" рд╣реИ рдФрд░, рдЧрд░реНрд╡ рд╕реЗ рдмреНрд░рд╛рдВрдбрд┐рдВрдЧ рдмреИрд╕рд╛рдЦреА рд╣реИ, рдмрд╛рдж рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЛрдИ рдХрдо рдкреНрд░рд╕рд┐рджреНрдз рдлреЗрд╕рдмреБрдХ рдХреА рд╕рдВрддрд╛рди рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдХрдо рдЧрд░реНрд╡ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рджрд╛рдврд╝реА рдирд╣реАрдВ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдердХ рдЧрдП рд╣реИрдВред рдЦреБрдж рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд┐рд╡реА рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ ...
рдЕрдЪреНрдЫрд╛ рдХрд┐рд╡реА рдХреНрдпрд╛ рд╣реИ? рдкрд╣рд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкрд╛рдпрдерди рд╣реИред рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреА рдЧрддрд┐, рдХреЛрдб рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛, рддреБрд░рдВрдд рдмрджрд▓рдиреЗ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рдордп рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдЬрдм рдЕрдиреНрдп рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдпрд╛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реА рдХрдбрд╝реА рдмреИрд╕рд╛рдЦреА рдмрдирд╛рдиреЗ рдХреЗ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдореЗрдВ рджрд╛рдврд╝реА рдмрдврд╝рд╛рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдпрд╣ 99.9% рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб, рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: рдЬрд╝рдорд░реАрди рдХреЛрдб рдХрд╛ рдХреЗрд╡рд▓ 60% рд╣реИ рдЬреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ 80% рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрджред рдХреАрд╡реА рдПрдХ рдкрд░рд┐рдкрдХреНрд╡ рдврд╛рдВрдЪрд╛ рд╣реИ рдЬрд┐рд╕реЗ 2011 рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдкрдиреЗ рд╕рд╛рдереА рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ (2015) рдФрд░ рдПрдХ рд╡рд░реНрд╖реАрдп рдЬрд╝рд╛рдорд░реАрди (2011) рд╕реЗ рдкреБрд░рд╛рдирд╛ рд╣реИред
рдЖрдЬ рдХреЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬреЛ рдХрд┐ рдХрд┐рд╡реА рдХреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рд╕рд╛рдВрддреНрд╡рдирд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛
CreatorKivyProject рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛
рдмрдирд╛рдПрдВрдЧреЗ , рджреЗрдЦреЗрдВ рдХрд┐ рдХрд┐рд╡реА рдореЗрдВ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рдХреИрд╕реЗ рдЪреЗрддрди рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ:
рддреЛ,
CreatorKivyProject рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ README рдХреЗ тАЛтАЛрдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЦрд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдФрд░ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░реАрди 'рдЕрдмрд╛рдЙрдЯ' рдФрд░ 'рд▓рд╛рдЗрд╕реЗрдВрд╕' рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдбреНрд░реЙрдЕрд░ рдореЗрдиреВ рдореЗрдВ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕реАрдзреЗ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдореЗрдирдлреНрд░реЗрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреЛ рдХрд┐ рдПрдкреНрд▓реАрдХреЗрд╢рди рдХрд╛ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рд╣реИред

рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░реАрди рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ:

рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рд╕реНрдХреНрд░реАрди рдореЗрдВ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧрдПрд╢рдирдмрдЯрди рдХреЗ рдЪрд╛рд░ рдмрдЯрди, рдЙрдирдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдФрд░ рдмрдЯрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдвреЗрд░ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рд╣реИред рдмрдЯрди рдХреЗ рдвреЗрд░ рд╕реЗ, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрдЯрди рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрдЯреИрдХ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдореЙрдбреНрдпреВрд▓ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧрдмреБрдЯрдирд╢реЛрдлреЛрдо рдмрдирд╛рдПрдБрдЧреЗ, рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рд╣рд░ рдЬрдЧрд╣, рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдкреИрдХреЗрдЬ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЬрд╣рд╛рдВ
рд▓рд┐рдм / рдПрдкрд▓рд┐рдмрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЦреЛрд▓реЗрдВ, рдФрд░
рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧрдмреБрдЯрди рдкреИрдХреЗрдЬ рдХреЛ
__init__.py ,
floactionsbuttons.kv рдФрд░ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧbuttons.py рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдБред
рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧрдмреБрдЯрдиреНрд╕.рдХреЗрд╡реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╡реА рднрд╛рд╖рд╛ рдореЗрдВ рдпреВрдЖрдИ рддрддреНрд╡реЛрдВ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЬрд╝реИрдорд░реАрди рдХреЗ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХреНрд╕рдПрдордПрд▓ рдпрд╛ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдорд╛рд░реНрдХрдЕрдкред
рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧрдмреБрдЯрдирд╕реЛрди рдлрд╝рд╛рдЗрд▓ рдлрд╝реНрд▓реЛрдЯреНрд╕рдмреБрдЯрди.рдХреЗрд╡реА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рддрддреНрд╡реЛрдВ рдФрд░ рдЙрдирдХреЗ рддрд░реНрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рдмрдЯрди рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдХ рдХрд╛ рд▓реЗрдЖрдЙрдЯ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рддрддреНрд╡реЛрдВ рдХреА рдЖрд╕рд╛рдиреА рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╕рдВрд░рдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ:
floatingactionsbuttons.kv#: import Window kivy.core.window.Window #: import MDFloatingActionButton kivymd.button.MDFloatingActionButton <FloatingButton@MDFloatingActionButton>: x: Window.width - (self.width + dp(21)) y: dp(25) size_hint: None, None size: dp(46), dp(46) elevation: 5 md_bg_color: app.theme_cls.primary_color on_release: self.parent.callback(self) <FloatingLabel>: size_hint: None, None height: dp(20) width: label.texture_size[0] border_color_a: .5 md_bg_color: app.theme_cls.primary_color x: -self.width Label: id: label color: 0, 0, 0, 1 bold: True markup: True text: ' %s ' % root.text <FloatingActionButtons>: FloatingButton: id: f_btn_1 icon: list(root.floating_data.values())[0] FloatingButton: id: f_btn_2 icon: list(root.floating_data.values())[1] FloatingButton: id: f_btn_3 icon: list(root.floating_data.values())[2] FloatingLabel: id: f_lbl_1 text: list(root.floating_data.keys())[0] y: dp(117) FloatingLabel: id: f_lbl_2 text: list(root.floating_data.keys())[1] y: dp(170) FloatingLabel: id: f_lbl_3 text: list(root.floating_data.keys())[2] y: dp(226) MDFloatingActionButton: icon: root.icon size: dp(56), dp(56) x: Window.width - (self.width + dp(15)) md_bg_color: app.theme_cls.primary_color y: dp(15) on_release: root.show_floating_buttons()
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕реНрдЯреИрдХ рдореЗрдВ рдХреМрди рд╕реЗ рддрддреНрд╡ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рд╣рдордиреЗ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛:
рдмрдЯрди рдЬреЛ рд╕реНрдЯреИрдХ рдореЗрдВ рд╣реЛрдЧрд╛:
рдореБрдЦреНрдп рдмрдЯрди, рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд▓рдВрдЧрд░ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ:
рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдпрд╣ рд╕рдм рд░рдЦрд╛, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рдкрджреЛрдВ (рджреГрд╢реНрдпрддрд╛ рд╕реЗ рдмрд╛рд╣рд░), рдФрд░ рд╕рднреА рдмрдЯрди рдХреЗ рд▓рд┐рдП - рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:
рдмрдЯрди рд╣рдо рдХреЗрд╡рд▓ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ
floatingactionsbuttons.py import os from kivy.animation import Animation from kivy.lang import Builder from kivy.core.window import Window from kivy.uix.floatlayout import FloatLayout from kivy.logger import PY2 from kivy.lang import Builder from kivy.properties import StringProperty, DictProperty, ObjectProperty from kivy.metrics import dp from kivymd.card import MDCard kv_file = os.path.splitext(__file__)[0] + '.kv' if PY2: Builder.load_file(kv_file) else: with open(kv_file, encoding='utf-8') as kv: Builder.load_string(kv.read()) class FloatingLabel(MDCard): text = StringProperty() class FloatingActionButtons(FloatLayout): icon = StringProperty('checkbox-blank-circle') callback = ObjectProperty(lambda x: None) floating_data = DictProperty() show = False def __init__(self, **kwargs): super(FloatingActionButtons, self).__init__(**kwargs) self.lbl_list = [self.ids.f_lbl_1, self.ids.f_lbl_2, self.ids.f_lbl_3] self.btn_list = [self.ids.f_btn_1, self.ids.f_btn_2, self.ids.f_btn_3] def show_floating_buttons(self): step = dp(46) for btn in self.btn_list: step += dp(56) Animation(y=step, d=.5, t='out_elastic').start(btn) self.show = True if not self.show else False self.show_floating_labels() if self.show \ else self.hide_floating_labels() def show_floating_labels(self): i = 0 for lbl in self.lbl_list: i += .5 pos_x = Window.width - (lbl.width + dp(46 + 21 * 1.5)) Animation(x=pos_x, d=i, t='out_elastic').start(lbl) def hide_floating_buttons(self): for btn in self.btn_list: Animation(y=25, d=.5, t='in_elastic').start(btn) def hide_floating_labels(self): i = 1 for lbl in self.lbl_list: i -= .3 Animation(x=-lbl.width, d=i, t='out_elastic').start(lbl) self.hide_floating_buttons()
рдХреАрд╡реА рдПрдирд┐рдореЗрд╢рди рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЙрд╕ рддрддреНрд╡ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЪреЗрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рдкрд╛рд╕ рдХрд░рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ kv рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рдмрдЯрди рдХреА рдКрдБрдЪрд╛рдИ 25, рдпрд╛рдиреА рд╕реНрдХреНрд░реАрди рдХреЗ рдиреАрдЪреЗ рд╕реЗ 25 рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рд╕реЗрдЯ рд╣реИ:
<FloatingButton@MDFloatingActionButton>: x: Window.width - (self.width + dp(21)) y: dp(25)
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рдмрдЯрди рд╣реИрдВ, рд▓реВрдк рдореЗрдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдКрдБрдЪрд╛рдИ (рдкреИрд░рд╛рдореАрдЯрд░
"y" ) рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдЗрд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо (
"out_elastic" ) рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬреЛ рдПрдиреАрдореЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ (рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ) , рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
def show_floating_buttons(self): ''' . Puthon/C++/Php. ''' step = dp(46) for btn in self.btn_list: step += dp(56) Animation(y=step, d=.5, t='out_elastic').start(btn)
рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХрд╛ рдПрдиреАрдореЗрд╢рди рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдПрдирд┐рдореЗрд╢рди рдореЗрдВ рд╣рдо
x рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ - рддрддреНрд╡ рдХреА рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдерд┐рддрд┐:
def show_floating_labels(self): ''' . Puthon/C++/Php. ''' i = 0
рдкреИрдХреЗрдЬ рддреИрдпрд╛рд░ рд╣реИред рдЗрд╕реЗ рд╣рдорд╛рд░реА рд╕рд┐рдВрдЧрд▓ рд╕реНрдХреНрд░реАрди рдореЗрдВ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП? рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдирд┐рдпрдВрддреНрд░рдг рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓реЗрдВ
AnimatedButtons / libs / uix / baseclass / basescreen.py :
... рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреИрдХреЗрдЬ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬреЛрдбрд╝реЗрдВ:
from libs.applibs.floatingactionbuttons import FloatingActionButtons class BaseScreen(Screen): ''' .''' def on_enter(self): ''' .'''
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓, рдкрд╛рд░рджрд░реНрд╢реА рдФрд░ рддреЗрдЬ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдбрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди,
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдХреЛ рдХрд┐рддрдирд╛ рдХреЛрдб рд▓рдЧрд╛, рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред рдХреАрд╡реА рдХреЗ рдмрдЧрд▓ рдореЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдЬрд╝рдореИрд░реАрди рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╕рдордп, рдореЛрдиреЛ рдФрд░ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╕рд╛рде рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдХрд┐рд╡реА рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред Kivy рдФрд░ Xamarin рдкрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд▓реЙрдиреНрдЪ рдЧрддрд┐ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди Xamarin рдХреА рдлрд┐рд▓рд╣рд╛рд▓ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдЬ Kivy # 1 рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ!
рдЖрдк
GitHub рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд┐рд╡реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
vimeo.com/29348760vimeo.com/206290310vimeo.com/25680681www.youtube.com/watch?v=u4NRu7mBXtAwww.youtube.com/watch?v=9rk9OQLSoJwwww.youtube.com/watch?v=aa9LXpg_gd0www.youtube.com/watch?v=FhRXAD8-UkEwww.youtube.com/watch?v=GJ3f88ebDqc&t=111swww.youtube.com/watch?v=D_M1I9GvpYswww.youtube.com/watch?v=VotPQafL7Nwyoutu.be/-gfwyi7TgLIplay.google.com/store/apps/details?id=org.kognitivo.kognitivoplay.google.com/store/apps/details?id=net.inclem.pyonicinterpreterplay.google.com/store/apps/details?id=com.madhattersoft.guessthequoteplay.google.com/store/apps/details?id=com.prog.ders.ceyhanplay.google.com/store/apps/details?id=com.heattheatr.quotessaints