A problem with str VS int.

2023-12-09 Thread Steve GS via Python-list
 If I enter a one-digit input or a three-digit number, the code works but if I 
enter a two digit number, the if statement fails and the else condition 
prevails.

   tsReading = input("   Enter the " + Brand + " test strip reading: ")
if tsReading == "": tsReading = "0"
print(tsReading)
if ((tsReading < "400") and (tsReading >= "0")):
tsDose = GetDose(sReading)
print(tsReading + "-" + tsDose)
ValueFailed = False
else:
print("Enter valid sensor test strip Reading.")

I converted the variable to int along with the if statement comparison and it 
works as expected.
See if it fails for you...

Steve

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: A problem with str VS int.

2023-12-12 Thread Steve GS via Python-list
With all these suggestions on
how to fix it, no one seems to
answer why it fails only when
entering a two-digit number.
One and three work fine when
comparing with str values. It
is interesting that the
leading 0 on a two digit
worked.  Still, one digit and
three digit work but not two.

This is now more of a
curiosity as I did use the
integer comparisons.

SGA

-Original Message-
From: Python-list
 On
Behalf Of dn via Python-list
Sent: Sunday, December 10,
2023 12:53 AM
To: python-list@python.org
Subject: Re: A problem with
str VS int.

On 10/12/23 15:42, Steve GS
via Python-list wrote:
>   If I enter a one-digit
input or a three-digit number,
the code works but if I enter
a two digit number, the if
statement fails and the else
condition prevails.
> 
> tsReading = input("
Enter the " + Brand + " test
strip reading: ")
>  if tsReading == "":
tsReading = "0"
>  print(tsReading)
>  if ((tsReading <
"400") and (tsReading >=
"0")):
>  tsDose =
GetDose(sReading)
>  print(tsReading
+ "-" + tsDose)
>  ValueFailed =
False
>  else:
>  print("Enter
valid sensor test strip
Reading.")
> 
> I converted the variable to
int along with the if
statement comparison and it
works as expected.
> See if it fails for you...

It works as expected (by
Python)! This is how strings
are compared - which is not
the same as the
apparently-equivalent numeric
comparison.

Think about what you expect
from the code below, and then
take it for a spin (of mental
agility):

values = [ 333, 33, 3, 222,
22, 2, 111, 11, 1, ] print(
sorted( values ) ) strings = [
"333", "33", "3", "222", "22",
"2", "111", "11", "1", ]
print( sorted( strings ) )


The application's data appears
numeric (GetDose() decides!). 
Accordingly, treat it so by
wrapping int() or float()
within a try-except (and
adjusting thereafter...).


"But wait, there's more!"
(assuming implement as-above):

if 0 <= ts_reading < 400:

1 consistent 'direction' of
the comparisons = readability
2 able to "chain" the
comparisons = convenience
3 identifier is
PEP-008-compliant = quality
and style

-- 
Regards,
=dn
-- 
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


IDLE editor suggestion.

2023-12-12 Thread Steve GS via Python-list
Maybe this already exists but
I have never seen it in any
editor that I have used.

It would be nice to have a
pull-down text box that lists
all of the searches I have
used during this session. It
would make editing a lot
easier if I could select the
previous searches rather than
having to enter it every time.

If this is inappropriate to
post this here, please tell me
where to go.
Life should be so
complicated.

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: IDLE editor suggestion.

2023-12-12 Thread Steve GS via Python-list
Does anything from the Visual Studio family of software have a pull down menu 
that lists previous searches so that I don’t have to enter them every time?

SGA

-Original Message-
From: Friedrich Romstedt  
Sent: Tuesday, December 12, 2023 12:52 PM
To: Steve GS 
Cc: python-list@python.org
Subject: Re: IDLE editor suggestion.

Hi!

Am Di., 12. Dez. 2023 um 09:28 Uhr schrieb Steve GS via Python-list
:
>
> Maybe this already exists but
> I have never seen it in any
> editor that I have used.

You might want to choose Microsoft Code from its Visual Studio family of 
software, or, if you're ready for a deep dive, you might try using vim. 
Personally I am using both.

HTH,
Friedrich

-- 
https://mail.python.org/mailman/listinfo/python-list


Problem resizing a window and button placement

2024-02-23 Thread Steve GS via Python-list
Python, Tkinter: How do I
determine if a window has been
resized? I want to locate
buttons vertically along the
right border and need to know
the new width. The buttons are
to move with the change of
location of the right-side
border.

 

 

 

SGA

 

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-23 Thread Steve GS via Python-list
How do I extract the values
from args?

SGA

-Original Message-
From: Python-list
 On
Behalf Of MRAB via Python-list
Sent: Friday, February 23,
2024 9:27 PM
To: python-list@python.org
Subject: Re: Problem resizing
a window and button placement

On 2024-02-24 01:14, Steve GS
via Python-list wrote:
> Python, Tkinter: How do I
> determine if a window has
been
> resized? I want to locate
> buttons vertically along the
> right border and need to
know
> the new width. The buttons
are
> to move with the change of
> location of the right-side
> border.
> 
Bind an event handler for
'':

8<

import tkinter as tk

def on_configure(*args):
 print(args)

root = tk.Tk()
root.bind('',
on_configure)
root.mainloop()

8<

Are you placing the buttons
yourself? I always use layouts
and they handle such things
automatically.

--
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-24 Thread Steve GS via Python-list
Yes, I ran that elegantly
simple code. The print
statement reports the X, Y,
Height and Width values.
However, I do not see how to
capture the width value.  

 I experimented with the code
Vwidth = rootV.winfo_width()
and it also reports the width
as I resize the window.

However, I cannot seem to use
the variable Vwidth outside
the sub routine. It is acting
as if Vwidth is not global but
I added that.  It is reported
that Vwidth is not defined
when I try to use it in my
code.

So close..
SGA

-Original Message-
From: Barry
 
Sent: Saturday, February 24,
2024 3:04 AM
To: Steve GS

Cc: MRAB
;
python-list@python.org
Subject: Re: Problem resizing
a window and button placement



> On 24 Feb 2024, at 04:36,
Steve GS via Python-list

wrote:
> 
> How do I extract the values
> from args?

You can look up the args in
documentation.
You can run the example code
MRAB provided and see what is
printed to learn what is in
the args.

Barry


-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-24 Thread Steve GS via Python-list
"Well, yes, in Python a
variable created inside a
function or method is local to
that function unless you
declare it global."

Yes, I knew that. I tried to
global it both before the
function call and within it.
Same for when I created the
variable. If I try to use it
in the rest of the code, it
keeps coming up as not
declared.  In other functions,
I can 'return' the variable
but that apparently would not
work for this function.

Is this type of function any
different that that which I
have been using?

SGA

-Original Message-
From: Python-list
 On
Behalf Of Thomas Passin via
Python-list
Sent: Saturday, February 24,
2024 8:40 AM
To: python-list@python.org
Subject: Re: Problem resizing
a window and button placement

On 2/24/2024 3:20 AM, Steve GS
via Python-list wrote:
> Yes, I ran that elegantly
> simple code. The print
> statement reports the X, Y,
> Height and Width values.
> However, I do not see how to
> capture the width value.
> 
>   I experimented with the
code
> Vwidth = rootV.winfo_width()
> and it also reports the
width
> as I resize the window.
> 
> However, I cannot seem to
use
> the variable Vwidth outside
> the sub routine. It is
acting
> as if Vwidth is not global
but
> I added that.  It is
reported
> that Vwidth is not defined
> when I try to use it in my
> code.

Well, yes, in Python a
variable created inside a
function or method is local to
that function unless you
declare it global. That
characteristic is called its
"scope". But if you think you
need it to be a global
variable you should rethink
your design. For one thing,
before the next time you use
your global variable the
window size may have changed
again.

Instead, it would be better to
have the function that
responds to the resize event
perform the action that you
want, or call another function
that does, passing the new
width to it.

Note that in most programming
languages, variables have a
scope.  The rules about those
scopes vary between languages.

> 
> So close..
> SGA
> 
> -Original Message-
> From: Barry
> 
> Sent: Saturday, February 24,
> 2024 3:04 AM
> To: Steve GS
> 
> Cc: MRAB
>
;
> python-list@python.org
> Subject: Re: Problem
resizing
> a window and button
placement
> 
> 
> 
>> On 24 Feb 2024, at 04:36,
> Steve GS via Python-list
> 
> wrote:
>>
>> How do I extract the values
>> from args?
> 
> You can look up the args in
> documentation.
> You can run the example code
> MRAB provided and see what
is
> printed to learn what is in
> the args.
> 
> Barry
> 
> 

--
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-24 Thread Steve GS via Python-list
import tkinter as tk

#global Ww  Neither global
helps
def on_configure(*args):
# print(args)
 #global Ww  Neither
global helps
 Ww = root.winfo_width()
 print("WwInside = <" +
str(Ww) + ">")

root = tk.Tk()
root.bind('',
on_configure)
print("WwOutside = <" +
str(Ww) + ">")
#NameError: name 'Ww' is not
defined
root.mainloop()

SGA

-Original Message-
From: Python-list
 On
Behalf Of MRAB via Python-list
Sent: Saturday, February 24,
2024 7:49 PM
To: python-list@python.org
Subject: Re: Problem resizing
a window and button placement

On 2024-02-25 00:33, Steve GS
via Python-list wrote:
> "Well, yes, in Python a
> variable created inside a
> function or method is local
to
> that function unless you
> declare it global."
> 
> Yes, I knew that. I tried to
> global it both before the
> function call and within it.
> Same for when I created the
> variable. If I try to use it
> in the rest of the code, it
> keeps coming up as not
> declared.  In other
functions,
> I can 'return' the variable
> but that apparently would
not
> work for this function.
> 
> Is this type of function any
> different that that which I
> have been using?
> 
Please post a short example
that shows the problem.

-- 
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-24 Thread Steve GS via Python-list
The print statement in the
function prints. 
Does that not mean that the
function is being called?



SGA

-Original Message-
From: Python-list
 On
Behalf Of Thomas Passin via
Python-list
Sent: Saturday, February 24,
2024 10:39 PM
To: python-list@python.org
Subject: Re: Problem resizing
a window and button placement

On 2/24/2024 9:51 PM, Steve GS
via Python-list wrote:
First of all, please make sure
that the formatting is
readable and especially the
indentation.  This is Python,
after all.

Do not use tabs; use 3 or 4
spaces instead of each tab.
> import tkinter as tk
> 
> #global Ww  Neither global
> helps
> def on_configure(*args):
> # print(args)
>   #global Ww  Neither
> global helps
>   Ww =
root.winfo_width()
>   print("WwInside = <" +
> str(Ww) + ">")
> 
> root = tk.Tk()
> root.bind('',
> on_configure)
> print("WwOutside = <" +
> str(Ww) + ">")
> #NameError: name 'Ww' is not
> defined

The function that declares Ww
hasn't run yet. As I wrote
earlier, the function bound to
the callback should do all the
work for the callback, or it
should call other functions
that do.  That's if you don't
let a layout do it all for
you, as others have written.

> root.mainloop()
> 
> SGA
> 
> -Original Message-
> From: Python-list
>
 sga.ni...@python.org> On
> Behalf Of MRAB via
Python-list
> Sent: Saturday, February 24,
> 2024 7:49 PM
> To: python-list@python.org
> Subject: Re: Problem
resizing
> a window and button
placement
> 
> On 2024-02-25 00:33, Steve
GS
> via Python-list wrote:
>> "Well, yes, in Python a
>> variable created inside a
>> function or method is local
> to
>> that function unless you
>> declare it global."
>>
>> Yes, I knew that. I tried
to
>> global it both before the
>> function call and within
it.
>> Same for when I created the
>> variable. If I try to use
it
>> in the rest of the code, it
>> keeps coming up as not
>> declared.  In other
> functions,
>> I can 'return' the variable
>> but that apparently would
> not
>> work for this function.
>>
>> Is this type of function
any
>> different that that which I
>> have been using?
>>
> Please post a short example
> that shows the problem.
> 

--
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-24 Thread Steve GS via Python-list
So, how do I use the width value in my code?

SGA

-Original Message-
From: Python-list  On Behalf 
Of MRAB via Python-list
Sent: Saturday, February 24, 2024 10:36 PM
To: python-list@python.org
Subject: Re: Problem resizing a window and button placement

On 2024-02-25 02:51, Steve GS wrote:
> import tkinter as tk
>
> #global Ww  Neither global helps
> def on_configure(*args):
> # print(args)
>   #global Ww  Neither global helps
>   Ww = root.winfo_width()
>   print("WwInside = <" + str(Ww) + ">")
>
> root = tk.Tk()
> root.bind('', on_configure) print("WwOutside = <" + str(Ww) 
> + ">")
> #NameError: name 'Ww' is not defined
> root.mainloop()
'Ww' won't exist until 'on_configure' assigns to it, and that won't happen 
until `mainloop` starts.

Also, 'global' works only within a function.

8<

import tkinter as tk

def on_configure(event):
 print(f'{event.width=}, {event.height=}')

root = tk.Tk()
root.bind('',on_configure)
root.mainloop()

8<

--
https://mail.python.org/mailman/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: RE: Problem resizing a window and button placement

2024-02-25 Thread Steve GS via Python-list
SOLUTION FOUND!

The fix was to write the code that uses the width value and to place it into 
the function itself.  
Kluge? Maybe but it works. 

Mischief Managed.


As for the most recent suggestion, it fails for me:

Traceback (most recent call last):
  File "F:/___zInsulin Code A 08-02-23/WinPic/IOWw.pyw", line 14, in 
print("Ww Outside = <" + str(Ww) > + ">")
TypeError: bad operand type for unary +: 'str'

With the need to close the window, it adds an extra step and intervention to 
the program to use. I am not sure how this help[s.

As a curio, it would be interesting to see how to use the value of a variable, 
created in the function used here, and make it available to the code outside 
the function.



SGA

-Original Message-
From: Alan Gauld  
Sent: Sunday, February 25, 2024 12:44 PM
To: Steve GS ; python-list@python.org
Subject: Re: RE: Problem resizing a window and button placement

On 25/02/2024 03:58, Steve GS via Python-list wrote:
import tkinter as tk

Ww = None

def on_configure(*args):
   global Ww
   Ww = root.winfo_width()
   print("Ww Inside = <" + str(Ww) + ">")

root = tk.Tk()
root.bind('', on_configure)
root.mainloop()

print("Ww Outside = <" + str(Ww) > + ">")

Produces:
Ww Inside = <200>
Ww Inside = <200>
Ww Inside = <205>
Ww Inside = <205>
Ww Inside = <206>
Ww Inside = <206>
Ww Outside = <206>

HTH

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-26 Thread Steve GS via Python-list
Ww Inside = <250>
Ww Inside = <249>
Ww Inside = <250>
Ww Outside =
<1770662408256on_configure>

Here is my result...

SGA

-Original Message-
From: Python-list
 On
Behalf Of MRAB via Python-list
Sent: Sunday, February 25,
2024 6:40 PM
To: python-list@python.org
Subject: Re: Problem resizing
a window and button placement

On 2024-02-25 21:19, Steve GS
via Python-list wrote:
> SOLUTION FOUND!
> 
> The fix was to write the
code that uses the width value
and to place it into the
function itself.
> Kluge? Maybe but it works.
> 
> Mischief Managed.
> 
> 
> As for the most recent
suggestion, it fails for me:
> 
> Traceback (most recent call
last):
>File "F:/___zInsulin Code
A 08-02-23/WinPic/IOWw.pyw",
line 14, in 
>  print("Ww Outside = <"
+ str(Ww) > + ">")
> TypeError: bad operand type
for unary +: 'str'
> 
It fails because there's a
mistake. It should be:

 print("Ww Outside = <" +
str(Ww) + ">")

> With the need to close the
window, it adds an extra step
and intervention to the
program to use. I am not sure
how this help[s.
> 
> As a curio, it would be
interesting to see how to use
the value of a variable,
created in the function used
here, and make it available to
the code outside the function.
> 
[snip]


-- 
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-26 Thread Steve GS via Python-list


Musta misstit
I had thought of that before I
started the discussion but
figured it would take more
code than it finally needed.
I guess I was also
variable-dependent thinking
that I would need the result
elsewhere in the code.  So
far, I see that I don't need
the value.

Then there is that discovery
element: Why is my original
idea not working? I still
cannot pass the value back
from the function.  What is
different about this function
that others would have given
me the value?


SGA

-Original Message-
From: Python-list
 On
Behalf Of Thomas Passin via
Python-list
Sent: Sunday, February 25,
2024 5:55 PM
To: python-list@python.org
Subject: Re: Problem resizing
a window and button placement

On 2/25/2024 4:19 PM, Steve GS
via Python-list wrote:
> SOLUTION FOUND!
> 
> The fix was to write the
code that uses the width value
and to place it into the
function itself.
> Kluge? Maybe but it works.

Right, just what I wrote
earlier:

"have the function that
responds to the resize event
perform the action that you
want"

> Mischief Managed.
> 
> 
> As for the most recent
suggestion, it fails for me:
> 
> Traceback (most recent call
last):
>File "F:/___zInsulin Code
A 08-02-23/WinPic/IOWw.pyw",
line 14, in 
>  print("Ww Outside = <"
+ str(Ww) > + ">")
> TypeError: bad operand type
for unary +: 'str'
> 
> With the need to close the
window, it adds an extra step
and intervention to the
program to use. I am not sure
how this help[s.
> 
> As a curio, it would be
interesting to see how to use
the value of a variable,
created in the function used
here, and make it available to
the code outside the function.
> 
> 
> 
> SGA
> 
> -Original Message-
> From: Alan Gauld

> Sent: Sunday, February 25,
2024 12:44 PM
> To: Steve GS
;
python-list@python.org
> Subject: Re: RE: Problem
resizing a window and button
placement
> 
> On 25/02/2024 03:58, Steve
GS via Python-list wrote:
> import tkinter as tk
> 
> Ww = None
> 
> def on_configure(*args):
> global Ww
> Ww =
root.winfo_width()
> print("Ww Inside =
<" + str(Ww) + ">")
> 
> root = tk.Tk()
> root.bind('',
on_configure)
> root.mainloop()
> 
> print("Ww Outside = <" +
str(Ww) > + ">")
> 
> Produces:
> Ww Inside = <200>
> Ww Inside = <200>
> Ww Inside = <205>
> Ww Inside = <205>
> Ww Inside = <206>
> Ww Inside = <206>
> Ww Outside = <206>
> 
> HTH
> 

--
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


RE: RE: Problem resizing a window and button placement

2024-02-26 Thread Steve GS via Python-list
Although your code produces the value of Ww outside the function, I do not see 
how I can use the value of Ww unless I close the program.

import tkinter as tk

Ww = None  # What does this do? Why not Integer?
WwZ = None

def on_configure(*args):
global Ww
global WwZ
Ww = root.winfo_width()
print("9  Ww Inside =<"+str(Ww)+">")  # works
WwZ = Ww * 2
print("11  WwZ Inside =<"+str(WwZ)+">")  # works
return(Ww)  #Can I use this?

root = tk.Tk()
root.bind('',on_configure)
print("15  Ww Inside1 = <"+str(Ww)+">")
#Ww2 = int(Ww) * 2  # fails
print("17  WwZ Inside2 = <"+str(WwZ)+">")

root.mainloop()

Ww2 = int(Ww) * 2  #Works but only after the program stops
print("21  Ww Outside2 = <"+str(WwZ)+">")
# Can I have concentric loops?


SGA

-Original Message-
From: Alan Gauld  
Sent: Monday, February 26, 2024 4:04 AM
To: Steve GS ; python-list@python.org
Subject: Re: RE: Problem resizing a window and button placement

On 26/02/2024 07:56, Steve GS via Python-list wrote:

> Then there is that discovery
> element: Why is my original
> idea not working? I still
> cannot pass the value back
> from the function.  What is
> different about this function
> that others would have given
> me the value?

There is nothing different, see the code below.
print() is a function like any other.
In this case it is called after you close the window, ie after mainloop() exits.
But any other function called inside
mainloop - eg any other event handler can also access it.

For example, if you added a button:

def printW(): print("Button Ww = ", Ww)

bw = tk.Button(root, text="Print Width", command=printW)
bw.pack()

You would be able to print the value on demand.

>> import tkinter as tk
>>
>> Ww = None
>>
>> def on_configure(*args):
>> global Ww
>> Ww = root.winfo_width()
>> print("Ww Inside =<"+str(Ww)+">")
>>
>> root = tk.Tk()
>> root.bind('',on_configure)
>> root.mainloop()
>>
>> print("Ww Outside = <"+str(Ww)+">")

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


-- 
https://mail.python.org/mailman/listinfo/python-list


RE: Problem resizing a window and button placement

2024-02-26 Thread Steve GS via Python-list
>> The configuration event
hasn't fired at the time you
include the print statement in
the handler's def block, and
therefore the print function
inside your handler hasn't
invoked.  It won't be invoked
until you resize the window.

Exactly

>> There is no point (really?)
to saving the width and height
outside your
on_configure() function,
because outside that function
you can't know if they have
been changed.  There could
even have been a race
condition where you use one
but the other changes before
you get around to using it. 

Aside from using it to resized
the window, is there no way to
know the last value of the
change for use in the program?
I could write the value to a
label and read it back later
in the process but that sounds
to be klugy.

>>  It's better just to ask tk
for the values whenever you
need them, as you do inside
your handler.

How would that be done?



SGA

-Original Message-
From: Python-list
 On
Behalf Of Thomas Passin via
Python-list
Sent: Monday, February 26,
2024 8:34 AM
To: python-list@python.org
Subject: Re: Problem resizing
a window and button placement

On 2/26/2024 6:02 AM, Steve GS
via Python-list wrote:
> Although your code produces
the value of Ww outside the
function, I do not see how I
can use the value of Ww unless
I close the program.

The configuration event hasn't
fired at the time you include
the print statement in the
handler's def block, and
therefore the print function
inside your handler hasn't
invoked.  It won't be invoked
until you resize the window.

There is no point to saving
the width and height outside
your
on_configure() function,
because outside that function
you can't know if they have
been changed.  There could
even have been a race
condition where you use one
but the other changes before
you get around to using it.
It's better just to ask tk for
the values whenever you need
them, as you do inside your
handler.

> import tkinter as tk
> 
> Ww = None  # What does this
do? Why not Integer?
> WwZ = None
# These could be integers,
like 0, but that would not be
the correct # window sizes at
that point. The window is
either not constructed or it #
has some definite size that is
not zero.

> def on_configure(*args):
>  global Ww
>  global WwZ
>  Ww =
root.winfo_width()
>  print("9  Ww Inside
=<"+str(Ww)+">")  # works
>  WwZ = Ww * 2
>  print("11  WwZ
Inside =<"+str(WwZ)+">")  #
works
>  return(Ww)  #Can I
use this?
>  
> root = tk.Tk()
>
root.bind('',on_con
figure)
> print("15  Ww Inside1 =
<"+str(Ww)+">")
> #Ww2 = int(Ww) * 2  # fails
> print("17  WwZ Inside2 =
<"+str(WwZ)+">")
> 
> root.mainloop()
> 
> Ww2 = int(Ww) * 2  #Works
but only after the program
stops
> print("21  Ww Outside2 =
<"+str(WwZ)+">") # Can I have
concentric 
> loops?
> 
> 
> SGA
> 
> -Original Message-
> From: Alan Gauld

> Sent: Monday, February 26,
2024 4:04 AM
> To: Steve GS
;
python-list@python.org
> Subject: Re: RE: Problem
resizing a window and button
placement
> 
> On 26/02/2024 07:56, Steve
GS via Python-list wrote:
> 
>> Then there is that
discovery
>> element: Why is my original
>> idea not working? I still
>> cannot pass the value back
>> from the function.  What is
>> different about this
function
>> that others would have
given
>> me the value?
> 
> There is nothing different,
see the code below.
> print() is a function like
any other.
> In this case it is called
after you close the window, ie
after mainloop() exits.
> But any other function
called inside
> mainloop - eg any other
event handler can also access
it.
> 
> For example, if you added a
button:
> 
> def printW(): print("Button
Ww = ", Ww)
> 
> bw = tk.Button(root,
text="Print Width",
command=printW)
> bw.pack()
> 
> You would be able to print
the value on demand.
> 
>>> import tkinter as tk
>>>
>>> Ww = None
>>>
>>> def on_configure(*args):
>>>  global Ww
>>>  Ww =
root.winfo_width()
>>>  print("Ww Inside
=<"+str(Ww)+">")
>>>
>>> root = tk.Tk()
>>>
root.bind('',on_con
figure)
>>> root.mainloop()
>>>
>>> print("Ww Outside =
<"+str(Ww)+">")
> 
> --
> Alan G
> Author of the Learn to
Program web site
http://www.alan-g.me.uk/ 
>
http://www.amazon.com/author/a
lan_gauld
> Follow my photo-blog on
Flickr at:
>
http://www.flickr.com/photos/a
langauldphotos
> 
> 

--
https://mail.python.org/mailma
n/listinfo/python-list

-- 
https://mail.python.org/mailman/listinfo/python-list


Transparent label background?

2024-02-28 Thread Steve GS via Python-list
My window is to have a label
over an image. How do I place
a label that has a transparent
background so as to not have
the square of the label look
so obnoxious?  

SGA

-- 
https://mail.python.org/mailman/listinfo/python-list