You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What steps will reproduce the problem?
>>> from pgu import gui
>>> label = gui.Label("mytext",width=300)
>>> label.style.width
55
What is the expected output? What do you see instead?
(expected 300)
What version of the product are you using? On what operating system?
pgu-0.18 on ubuntu
Please provide any additional information below.
The reason that I feel this is needed is that I want to be able to change the
label value in a fixed size container. Label.set_text was very slow.
(attempting to display the value of a moving slider caused lag)
I created a workaround that allows you to set a number of characters that you
would like to be able to display, and if it is set, then the label will use
that number of 'M' characters to estimate the size of the field.
===================================
#new Label.__init__()
def __init__(self, value="", **params):
params.setdefault('focusable', False)
params.setdefault('cls', 'label')
widget.Widget.__init__(self, **params)
self.style.check("font")
self.value = value
self.font = self.style.font
params.setdefault('chars')
self.chars=params['chars']
if self.chars is None:
self.style.width, self.style.height = self.font.size(self.value)
else:
self.style.width, self.style.height = self.font.size("M" * self.chars)
#new set_text()
def set_text(self, txt):
"""Set the text of this label."""
self.value = txt
# Signal to the application that we need to resize this widget
if self.chars is None:
self.chsize()
else:
self.repaint()
#new Label.resize()
def resize(self,width=None,height=None):
# Calculate the size of the rendered text
if self.chars is None:
self.style.width, self.style.height = self.font.size(self.value)
else:
(self.style.width, self.style.height) = self.font.size("M" * self.chars)
return (self.style.width, self.style.height)
==========================================================
#showing differences
>>> from pgu import gui
>>> oldlabel = gui.Label("mytext")
>>> oldlabel.style.width
55
>>> sizelabel = gui.Label("mytext", width=100)
>>> sizelabel.style.width
55
>>> newlabel = gui.Label("mytext", chars=10)
>>> newlabel.style.width
130
Original issue reported on code.google.com by [email protected] on 30 Jul 2013 at 10:30
The text was updated successfully, but these errors were encountered:
Original issue reported on code.google.com by
[email protected]
on 30 Jul 2013 at 10:30The text was updated successfully, but these errors were encountered: