[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

How to make a Tkinter widget always visible?

Miki

3/11/2008 5:11:00 PM

Hello,

I have a simple Tkinter window with [GO] and [Quit] buttons at the
bottom.

When I resize the window to be shorter, the first thing to disappear
are the buttons, however I want these button to be visible at all
times.

Is there a way to make sure that these buttons are always visible?

Thanks,
--
Miki <miki.tebeka@gmail.com>
http://pythonwise.bl...
4 Answers

Kevin Walzer

3/11/2008 5:58:00 PM

0

Miki wrote:
> Hello,
>
> I have a simple Tkinter window with [GO] and [Quit] buttons at the
> bottom.
>
> When I resize the window to be shorter, the first thing to disappear
> are the buttons, however I want these button to be visible at all
> times.
>
> Is there a way to make sure that these buttons are always visible?
>

There are various ways to do this: you can set the window to be
non-resizable, or set a minimum size to it, so that it can't be resized
below that level. However, if you allow arbitrary resizing of the
window, there's no real way to guarantee that the widgets will be
visible at all times.

--
Kevin Walzer
Code by Kevin
http://www.codeb...

Miki

3/11/2008 7:07:00 PM

0

Hello Kevin,

> > Is there a way to make sure that these buttons are always visible?
>
> There are various ways to do this: you can set the window to be
> non-resizable, or set a minimum size to it, so that it can't be resized
> below that level. However, if you allow arbitrary resizing of the
> window, there's no real way to guarantee that the widgets will be
> visible at all times.
Thanks.

I've set a minimal size to the window. However when I resize it to be
shorter, the buttons are hidden while the top frame stays visible.

Thanks,
--
Miki <miki.tebeka@gmail.com>
http://pythonwise.bl...

Kevin Walzer

3/11/2008 7:08:00 PM

0

Miki wrote:
> Hello Kevin,
>
>>> Is there a way to make sure that these buttons are always visible?
>> There are various ways to do this: you can set the window to be
>> non-resizable, or set a minimum size to it, so that it can't be resized
>> below that level. However, if you allow arbitrary resizing of the
>> window, there's no real way to guarantee that the widgets will be
>> visible at all times.
> Thanks.
>
> I've set a minimal size to the window. However when I resize it to be
> shorter, the buttons are hidden while the top frame stays visible.
>

Please post the code you're using--it will be easier to help if we can
see exactly what you are trying.

--K

--
Kevin Walzer
Code by Kevin
http://www.codeb...

Miki

3/12/2008 10:35:00 PM

0

Hello Kevin,

> Please post the code you're using--it will be easier to help if we can
> see exactly what you are trying.
In a nutshell:
-------------------------------
import Tkinter as tk, tkFont
from tkMessageBox import showinfo, showerror
from os import popen


def main():
root = tk.Tk()

# Log window
tk.Label(root, text="Log:", anchor=tk.W).pack(fill=tk.X)
frame = tk.Frame(root)
scrollbar = tk.Scrollbar(frame)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
log = tk.Text(frame, width=80)
log.config(state=tk.DISABLED)
log.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)
scrollbar.config(command=log.yview)
frame.pack(fill=tk.BOTH, expand=1)

# Button frame
frame = tk.Frame(root)
update = tk.Button(frame, text="GO", command=lambda:
showinfo("OUCH"))
update.pack(side=tk.LEFT)
tk.Button(frame, text="Quit",
command=root.quit).pack(side=tk.LEFT)
frame.pack(fill=tk.X)


root.bind("<Escape>", lambda e: root.quit())
update.focus()
root.minsize(-1, 100)
root.mainloop()

if __name__ == "__main__":
main()
-------------------------------
When I pack the buttons frame first (using side=BOTTOM), it stays
visible at all times.

Thanks,
--
Miki <miki.tebeka@gmail.com>
http://pythonwise.bl...