From 9f20ebb8bfffa50c2f94f2a28d06edfbaf0c9d9f Mon Sep 17 00:00:00 2001 From: Eugenio Parodi Date: Mon, 22 Feb 2021 09:29:04 +0000 Subject: [PATCH] first label implementation --- TermTk/TTkWidgets/__init__.py | 5 +- TermTk/TTkWidgets/label.py | 45 ++++++++++++++++ .../{test.ui.003.py => test.ui.003.layout.py} | 0 ...{test.ui.004.py => test.ui.004.windows.py} | 0 tests/test.ui.005.labels.py | 51 +++++++++++++++++++ 5 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 TermTk/TTkWidgets/label.py rename tests/{test.ui.003.py => test.ui.003.layout.py} (100%) rename tests/{test.ui.004.py => test.ui.004.windows.py} (100%) create mode 100755 tests/test.ui.005.labels.py diff --git a/TermTk/TTkWidgets/__init__.py b/TermTk/TTkWidgets/__init__.py index d19ac83b..8e5214f8 100644 --- a/TermTk/TTkWidgets/__init__.py +++ b/TermTk/TTkWidgets/__init__.py @@ -1,7 +1,8 @@ +from .widget import * +from .layout import * from .frame import * from .button import * -from .layout import * -from .widget import * +from .label import * from .window import * from .logviewer import * from .testwidget import * \ No newline at end of file diff --git a/TermTk/TTkWidgets/label.py b/TermTk/TTkWidgets/label.py new file mode 100644 index 00000000..91efba8f --- /dev/null +++ b/TermTk/TTkWidgets/label.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +# MIT License +# +# Copyright (c) 2021 Eugenio Parodi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from TermTk.TTkCore.log import TTkLog +from .widget import * + +class TTkLabel(TTkWidget): + __slots__ = ('_text') + def __init__(self, *args, **kwargs): + TTkWidget.__init__(self, *args, **kwargs) + self.text = kwargs.get('text', "" ) + + def paintEvent(self): + self._canvas.drawText(pos=(0,0), text=self.text) + + @property + def Abouttext(self): + return self._text + + @Abouttext.setter + def Abouttext(self, text): + self._text = text + self.setMinimumSize(len(text), 1) + self.update() \ No newline at end of file diff --git a/tests/test.ui.003.py b/tests/test.ui.003.layout.py similarity index 100% rename from tests/test.ui.003.py rename to tests/test.ui.003.layout.py diff --git a/tests/test.ui.004.py b/tests/test.ui.004.windows.py similarity index 100% rename from tests/test.ui.004.py rename to tests/test.ui.004.windows.py diff --git a/tests/test.ui.005.labels.py b/tests/test.ui.005.labels.py new file mode 100755 index 00000000..3cae8e23 --- /dev/null +++ b/tests/test.ui.005.labels.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +# MIT License +# +# Copyright (c) 2021 Eugenio Parodi +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import sys, os + +sys.path.append(os.path.join(sys.path[0],'..')) +import TermTk as ttk + +ttk.TTkLog.use_default_file_logging() + +root = ttk.TTk() + +win1 = ttk.TTkWindow(parent=root,pos = (1,1), size=(100,50), title="Test Window 1", border=True) +win1.setLayout(ttk.TTkVBoxLayout()) +ttk.TTkButton(parent=win1, text="BUTTON") +ttk.TTkLabel(parent=win1, text="Test Label 1") +ttk.TTkLabel(parent=win1, text="Test Label 2") +ttk.TTkLabel(parent=win1, text="Test Label 3") +ttk.TTkLabel(parent=win1, text="Test Label 4") +ttk.TTkLabel(parent=win1, text="Test Label 5") +ttk.TTkLabel(parent=win1, text="Test Label 6") +ttk.TTkLabel(parent=win1, text="Test Very Long Label 7") +ttk.TTkLabel(parent=win1, text="Test Label 8") +ttk.TTkLabel(parent=win1, text="Test Label 9") +ttk.TTkLabel(parent=win1, text="Test Label 10") +ttk.TTkLabel(parent=win1, text="Test Label 11") +ttk.TTkLabel(parent=win1, text="Test Label 12") + + +root.mainloop() \ No newline at end of file