Seite 1 von 1

tkinter-Widgets nachträglich durch ttk-Widgets ersetzen

Verfasst: Mittwoch 13. August 2014, 11:52
von Goswin
Ich bemerke gerade, dass meine tkinter-Version auch Ttk enthält. Meine bisherigen Programme benutzen alle:

Code: Alles auswählen

import tkinter as t
#t.Tk, t.Frame, t.Canvas, t.Button, t.Label, usw.
Ich möchte ich gerne sehen, was mit diesen Programmen passiert wenn ich diejenigen Tkinter-Widgets, welche auch in Ttk vorhanden sind (aber eben nur diese), durch die Ttk-Widgets ersetze. Muss ich dafür meine Programme Zeile für Zeile durchsehen und die Namen der entsprechenden Widgets abändern, oder ist das auch machbar, indem ich ein paar Standartzeilen an den Anfang jedes Moduls setze? Wenn meine ursprünglichen Programme folgend Form hätten,

Code: Alles auswählen

from tkinter import *
#Tk, Frame, Canvas, Button, Label, usw.
dann würde das durch Einfügen der Zeile "from tkinter.ttk import *" leicht zu machen sein. Aber das ist bei mir nun einmal nicht der Fall, weil ich mir angewöhnt hatte, Konstrukte wie "from xxx import *" grundsätzlich zu vermeiden.

Re: tkinter-Widgets nachträglich durch ttk-Widgets ersetzen

Verfasst: Mittwoch 13. August 2014, 16:32
von Schorlem
?

Code: Alles auswählen

from tkinter import ttk as t
bzw.

Code: Alles auswählen

import tkinter.ttk as t
tk.Tk() funktoniert mit ttk aber nicht, ich weiß aber nicht, ob es mehr von diesen Unterschieden gibt.

Re: tkinter-Widgets nachträglich durch ttk-Widgets ersetzen

Verfasst: Donnerstag 14. August 2014, 09:27
von Goswin
[quote="Schorlem"]?

Code: Alles auswählen

tk.Tk() funktoniert mit ttk aber nicht, ich weiß aber nicht, ob es mehr von diesen Unterschieden gibt.[/quote]
Ja, gibt es. Ttk enthält nur einige der Widgets, alle anderen müssen aus Tkinter importiert werden, deshalb darf der Zugang zu Tkinter nicht einfach überschrieben werden.