Fenster "vergrößern" sperren?

Fragen zu Tkinter.
Antworten
Tengel
User
Beiträge: 210
Registriert: Sonntag 17. März 2013, 12:29

Hallo - gibt es die Möglichkeit das man verhindern kann das ein Fenster "größer" gezogen wird?


Gruß
Tengel
BlackJack

@Tengel: Auf Fenstern gibt es eine `resizable()`-Methode, mit der man für Breite und Höhe unabhängig angeben kann, ob das Fenster in der jeweiligen Richtung verändert werden kann:

Code: Alles auswählen

In [2]: tk.Tk.resizable?
Type:       instancemethod
Base Class: <type 'instancemethod'>
String Form:<unbound method Tk.wm_resizable>
Namespace:  Interactive
File:       /usr/lib/python2.7/lib-tk/Tkinter.py
Definition: tk.Tk.resizable(self, width=None, height=None)
Docstring:
Instruct the window manager whether this width can be resized
in WIDTH or HEIGHT. Both values are boolean values.
Tengel
User
Beiträge: 210
Registriert: Sonntag 17. März 2013, 12:29

Oh danke - klappt wunderbar.
Gibt es eine Möglichkeit einzustellen das dass Fenster immer im "Vordergrund" ist?

Bsp:
Ich hab mein Programm offen und öffne Webbrowser - dann legt sich der Browser ja über das Programm - kann man das verhindern?
BlackJack

@Tengel: Soweit ich weiss gibt es dafür keine plattformübergreifende Lösung für Tk. Wenn man danach im Netz sucht, findet man für Windows etwas mit Tk das aber anscheinend nicht auf jeder Windowsversion funktioniert, oder Systemaufrufe mit `win32*`-Modulen, die das direkt von der Windows-API anfordern.
Tengel
User
Beiträge: 210
Registriert: Sonntag 17. März 2013, 12:29

Hm okay - hab auch schon gegoogelt und hat alles nicht funktioniert - dann werd ich schauen das ich die Fenster einfach nebeneinander anordne.
BlackJack

@Tengel: Das würde ich aber nicht im Code versuchen. So etwas ist Aufgabe der Fensterverwaltung und alles was Programme da in der Regel machen können, sind eh nur Wünsche oder Vorschläge. Wenn ich ein Fenster immer als oberstes haben möchte, dann sage ich das als Benutzer einfach der Fensterverwaltung. Je nach dem wie gut die ist, kann man auch sagen, dass bestimmte Anwendungen oder sogar einzelne Fenster von Anwendungen immer in einer bestimmten Art und Weise verwaltet werden sollen, so dass man diese Einstellungen nicht jedes mal erneut vornehmen muss.
Tengel
User
Beiträge: 210
Registriert: Sonntag 17. März 2013, 12:29

nene ich meinte auch nicht im Code
Tengel
User
Beiträge: 210
Registriert: Sonntag 17. März 2013, 12:29

Kann man in ein Entry einen Text schreiben - der verschwindet wenn man mit der Maus ins Feld drückt?
BlackJack

@Tengel: Ja, das geht:

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf8
import Tkinter as tk


class SelfClearingEntry(tk.Entry):
    def __init__(self, *args, **kwargs):
        tk.Entry.__init__(self, *args, **kwargs)
        self.bind('<Button-1>', lambda _e: self.delete(0, tk.END))


def main():
    root = tk.Tk()
    entry = SelfClearingEntry(root)
    entry.pack()
    root.mainloop()


if __name__ == '__main__':
    main()
Antworten