Browse Source

tuned the fancy widgets and moved the current progressbar in the fancy type

pull/165/head
Eugenio Parodi 3 years ago
parent
commit
40f22f71a6
  1. 1
      TermTk/TTkWidgets/Fancy/__init__.py
  2. 30
      TermTk/TTkWidgets/Fancy/progressbar.py
  3. 2
      TermTk/TTkWidgets/Fancy/table.py
  4. 2
      TermTk/TTkWidgets/Fancy/tableview.py
  5. 2
      TermTk/TTkWidgets/Fancy/tree.py
  6. 2
      TermTk/TTkWidgets/Fancy/treeview.py
  7. 2
      TermTk/TTkWidgets/Fancy/treewidget.py
  8. 2
      TermTk/TTkWidgets/Fancy/treewidgetitem.py
  9. 3
      TermTk/TTkWidgets/__init__.py
  10. 14
      tests/test.ui.022.progressbar.py

1
TermTk/TTkWidgets/Fancy/__init__.py

@ -4,3 +4,4 @@ from .tree import *
from .treeview import *
from .treewidget import *
from .treewidgetitem import *
from .progressbar import *

30
TermTk/TTkWidgets/progressbar.py → TermTk/TTkWidgets/Fancy/progressbar.py

@ -24,13 +24,26 @@
import math
from TermTk.TTkCore.cfg import TTkCfg
from TermTk.TTkCore.color import TTkColor
from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.string import TTkString
from TermTk.TTkCore.signal import pyTTkSignal, pyTTkSlot
from TermTk.TTkWidgets.widget import TTkWidget
from TermTk.TTkTemplates.lookandfeel import TTkLookAndFeel
class TTkLookAndFeelPBar(TTkLookAndFeel):
__all__ = ['TTkFancyProgressBar', 'TTkLookAndFeelFPBar']
class TTkLookAndFeel():
__slots__ = ('modified')
def __init__(self, *args, **kwargs):
self.modified = pyTTkSignal()
class TTkLookAndFeelFPBar(TTkLookAndFeel):
progresssBarColor = TTkColor.fg('#0000aa')+TTkColor.bg("#000044")
progressBarTextColor = TTkColor.fg('#ffffff')
__slots__ = ('_textWidth', '_showText')
def __init__(self, showText=True, textWidth=4):
super().__init__()
@ -56,21 +69,22 @@ class TTkLookAndFeelPBar(TTkLookAndFeel):
self.modified.emit()
def color(self, value, minimum, maximum):
return TTkCfg.theme.progresssBarColor
return self.progresssBarColor
def text(self, value, minimum, maximum):
percent = round(100*(value-minimum)/(maximum-minimum))
return TTkString(f"{percent:3}%", color=TTkCfg.theme.progressBarTextColor)
return TTkString(f"{percent:3}%", color=self.progressBarTextColor)
'''
Progressbar: | |
rest block ^
full blocks ^^^^^^^^
'''
class TTkProgressBar(TTkWidget):
'''TTkProgressBar'''
class TTkFancyProgressBar(TTkWidget):
'''TTkFancyProgressBar'''
__slots__ = (
'_lookAndFeel',
'_value', '_minimum', '_maximum',
# Signals
'valueChanged')
@ -78,8 +92,8 @@ class TTkProgressBar(TTkWidget):
def __init__(self, *args, **kwargs):
self.valueChanged = pyTTkSignal(float)
TTkWidget.__init__(self, *args, **kwargs)
if not kwargs.get('lookAndFeel'):
self.setLookAndFeel(TTkLookAndFeelPBar())
self._lookAndFeel = kwargs.get('lookAndFeel',TTkLookAndFeelFPBar())
self._lookAndFeel.modified.connect(self.update)
self._value_min, self._value_max, self._value = 0.0, 1.0, 0.0
self.setValue(kwargs.get('value', 0.0))
self.setMinimumSize(3, 1)
@ -154,7 +168,7 @@ class TTkProgressBar(TTkWidget):
def paintEvent(self, canvas):
width, height = self.size()
laf = self.lookAndFeel()
laf = self._lookAndFeel
text = laf.text(self._value, self._value_min, self._value_max)
color_bar = laf.color(self._value, self._value_min, self._value_max)
blocks = TTkCfg.theme.progressbarBlocks

2
TermTk/TTkWidgets/Fancy/table.py

@ -26,6 +26,8 @@ from TermTk.TTkCore.constant import TTkK
from TermTk.TTkWidgets.Fancy.tableview import TTkFancyTableView
from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea
__all__ = ['TTkFancyTable']
class TTkFancyTable(TTkAbstractScrollArea):
__slots__ = (
'_tableView', 'activated',

2
TermTk/TTkWidgets/Fancy/tableview.py

@ -30,6 +30,8 @@ from TermTk.TTkWidgets.widget import TTkWidget
from TermTk.TTkLayouts.gridlayout import TTkGridLayout
from TermTk.TTkAbstract.abstractscrollview import TTkAbstractScrollView, TTkAbstractScrollViewGridLayout
__all__ = ['TTkFancyTableView']
class _TTkFancyTableViewHeader(TTkAbstractScrollView):
__slots__ = ('_header', '_alignments', '_headerColor', '_columns')
def __init__(self, *args, **kwargs):

2
TermTk/TTkWidgets/Fancy/tree.py

@ -26,6 +26,8 @@ from TermTk.TTkCore.constant import TTkK
from TermTk.TTkWidgets.Fancy.treewidget import TTkFancyTreeWidget
from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea
__all__ = ['TTkFancyTree']
class TTkFancyTree(TTkAbstractScrollArea):
__slots__ = (
'_treeView', 'activated',

2
TermTk/TTkWidgets/Fancy/treeview.py

@ -24,6 +24,8 @@
from TermTk.TTkWidgets.Fancy.tableview import TTkFancyTableView
__all__ = ['TTkFancyTreeView']
class TTkFancyTreeView(TTkFancyTableView):
__slots__ = ( '_header', '_treeView', '_showHeader', 'activated')

2
TermTk/TTkWidgets/Fancy/treewidget.py

@ -32,6 +32,8 @@ from TermTk.TTkWidgets.checkbox import TTkCheckbox
from TermTk.TTkWidgets.Fancy.tableview import TTkFancyTableView
from TermTk.TTkWidgets.Fancy.treewidgetitem import TTkFancyTreeWidgetItem
__all__ = ['TTkFancyTreeWidget']
class _TTkDisplayedTreeItemControl(TTkCheckbox):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

2
TermTk/TTkWidgets/Fancy/treewidgetitem.py

@ -25,6 +25,8 @@
from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.signal import pyTTkSignal
__all__ = ['TTkFancyTreeWidgetItem']
class TTkFancyTreeWidgetItem():
__slots__ = ('_parent', '_data', '_children', '_expand', '_childIndicatorPolicy',
# Signals

3
TermTk/TTkWidgets/__init__.py

@ -13,7 +13,6 @@ from .about import TTkAbout
from .button import TTkButton
from .checkbox import TTkCheckbox
from .combobox import TTkComboBox
from .Fancy import *
from .graph import TTkGraph
from .image import TTkImage
from .label import TTkLabel
@ -22,7 +21,6 @@ from .list_ import TTkList
from .listwidget import TTkListWidget
from .menubar import TTkMenuBarLayout
from .menu import TTkMenu, TTkMenuButton
from .progressbar import TTkProgressBar, TTkLookAndFeelPBar
from .radiobutton import TTkRadioButton
from .scrollarea import TTkScrollArea
from .scrollbar import TTkScrollBar
@ -33,3 +31,4 @@ from .kodetab import TTkKodeTab
from .texedit import TTkTextEdit, TTkTextEditView
from .TTkModelView import *
from .TTkPickers import *
from .Fancy import *

14
tests/test.ui.022.progressbar.py

@ -44,11 +44,11 @@ def main():
parent=root,pos=(1,1), size=(55,15), border=True, layout=layout,
title="Test Progressbar (resize me)")
class TextLAF(ttk.TTkLookAndFeelPBar):
class TextLAF(ttk.TTkLookAndFeelFPBar):
def text(self, value, max, min):
return 'low' if value < 0.5 else 'high'
class ColorLAF(ttk.TTkLookAndFeelPBar):
class ColorLAF(ttk.TTkLookAndFeelFPBar):
def color(self, value,max,min):
red, green = round(value*255), round((1-value)*255)
fg = f"#{red:02x}{green:02x}00"
@ -57,12 +57,12 @@ def main():
claf = ColorLAF(textWidth=5)
rootW.layout().addWidget(pb1 := ttk.TTkProgressBar(), row=0, col=0)
rootW.layout().addWidget(pb2 := ttk.TTkProgressBar(lookAndFeel=ColorLAF(showText=False)), row=2, col=0)
rootW.layout().addWidget(pb3 := ttk.TTkProgressBar(lookAndFeel=TextLAF(textWidth=6)), row=3, col=0)
rootW.layout().addWidget(pb1 := ttk.TTkFancyProgressBar(), row=0, col=0)
rootW.layout().addWidget(pb2 := ttk.TTkFancyProgressBar(lookAndFeel=ColorLAF(showText=False)), row=2, col=0)
rootW.layout().addWidget(pb3 := ttk.TTkFancyProgressBar(lookAndFeel=TextLAF(textWidth=6)), row=3, col=0)
rootW.layout().addWidget(pb4 := ttk.TTkProgressBar(lookAndFeel=claf), row=4, col=0)
rootW.layout().addWidget(pb5 := ttk.TTkProgressBar(lookAndFeel=claf, value=0.5), row=5, col=0)
rootW.layout().addWidget(pb4 := ttk.TTkFancyProgressBar(lookAndFeel=claf), row=4, col=0)
rootW.layout().addWidget(pb5 := ttk.TTkFancyProgressBar(lookAndFeel=claf, value=0.5), row=5, col=0)
rootW.layout().addWidget(cbt := ttk.TTkCheckbox(text=" - Rem/Add Text", checked=True), row=6, col=0)

Loading…
Cancel
Save