Package: tkvue
TKVueDeclarative Tkinter UI using makup language with reactive data binding.DescriptionTKVue bring familiar advantages in web development to traditional development. This project allow you to create modern graphical user interface written in Python using Tkinter library.TKVue provide a declarative language to build user interface with Markup language.<Labeltext="Hello world!"/>TKVue provide databinding to quickly make your graphical user interface dynamic.<ComboBoxpack-side="left"pack-expand="1"values="['zero', 'one', 'two', 'three']"textvariable="{{ myvariable }}"/><Labeltext="{{ myvariable }}"/>TKVue provide a babel entry point to support internationalization.babel.cfg:[tkvue:**/templates/**.tkml]InstallationTKVue is available on pypi and can be installed usingpip.pipinstalltkvueUsageOnce installed you may take a look at various examples available:https://gitlab.com/ikus-soft/tkvue/-/tree/master/doc/examplesHelp is welcome to write proper documentation about how to use TKVue.SupportIf you need help or experience problem while using TKvue, open a ticket inGitlab.ResultOnce you have customize the Tkinter themes, the result could be astonishing. Here the result ofMinarcainterface build using TKVue.TranslationTkvue provide a babel extention to extract static text from xml template.You must configure babel to use the right plugin to extract the values from the templates.babel.cfg:[tkvue: **/templates/**.tkml]Then You may use babel and other gettext tools to complete the translation using the.pofile.pythonsetup.pyextract_messagesSee AlsoOther Tkinter-related projects worth mentioning:witkets: Create Tkinter interface using XML similar to TKVuettkbootstrap: Theme extension for tkinter inspire by BootstrapChangelog2.1.6 ()Add support@tkvue.computed()annotation to register attribute dynamicallyAdd support Python 3.12Ajust asyncio event loop to keep it running when mainloop() exitAdd support Grid Geometry managerAdd support@tkvue.attr()annotation to register attribute dynamically for custom componentAdd supportstyleattribute onTopLevelto inherit background colorAddloop_idxvariable when usingforattribute2.1.5 (2023-10-18)Fix infinit recursion depth when root is not yet defined2.1.4 (2023-07-26)Update background of ScrolledFrame when style is configureRegister "wrap" attribute only for Label2.1.3 (2023-07-25)Define minimum height for ScrolledFrame.2.1.2 (2023-07-13)Fix display of scrollbar in ScrolledFrame when resize on Y axis.2.1.1 (2023-07-12)Fix display of scrollbar on initialization.2.1.0 (2023-04-20)Add many examples for self documentationProvide the@tkvue.widgetannotation to register a new widget.Provide the@tkvue.attrannotation to register the custom attributes of the widget.2.0.3 (2023-02-26)Supportresizableattribute on TopLevelnot_resizable.pySupportthemeattribute on TopLeveltheme.py2.0.2 (2023-02-08)Add example to demonstrate usage of variablesdynamic.pyAdd example to demonstrate usage ofvisible=attribute to show or hide widgetdynamic_visible.pyAdd example to demonstrate usage offor=attribute to create list of widgetdynamic_loop.pyAdd example to demonstrate style customizationcolor.py2.0.1 (2023-01-16)Support assignment ofNoneto<Label image="..." >to hide imageanimated_gif.pyAdd example to demonstrate usage of<Progressbar>progressbar.py2.0.0 (2022-12-13)Implement mainloop using asyncio to avoid multi-threading #1Increase default offset when displaying<Tooltip>to avoid flikering when user hover a widget<ScrolledFrame>inherit the background color from the styleShow or hide scroll bar of<ScrolledFrame>when neededPin version of black, isort and flake8Add support forplacegeometry manager1.0.1 (2022-11-09)Fix license badgeDeclare babel entry point for translationAdd combobox exampleUse private gitlab runner for running test1.0.0 (2022-04-06)Initial version of TKVue writting for Minarca project