Tab Widgets

Fragen zu Tkinter.
Antworten
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Hi Alle,

ich suche nach einem Modul womit ich in einem Hautpfenster TabWidgets erstellen kann für das Gui Toolkit Tkinter.

Meine suche bracht mich zu "Frame()" und "Canvas", aber diese scheinen nicht direkt das zu sein was ich wollte. Bei canvas müsste ich dann meine Tabwidgets wahrscheinlich selber zeichnen und alle Verhalten selber einstellen.

Gibt es hier nicht schon ein fertiges Gerüst oder eine fertiges Modul?
Kann mir da Jemand einen Tipp geben bitte?
Schön wäre auch ein Link zu einem Tutorial.

Grüsse Markus
BlackJack

Schau Dir mal `Tix.NoteBook` an.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Ja, mit Tix geht das, wenn auch am anfang etwas schwierig, weils sich nicht ganz so wie Tkinter "anfühlt".
Wenn du auf Abhängigkeiten verzichten willst und es um die funktion und nicht so aufs Aussehen ankommt, kannst du auch einfach mehrere Frames in ein Frame packen (also nur als master angeben) und über Buttons dann jeweils ein Frame sichtbarmachen.
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Danke für die Antworten. Ich werde es mir nochmal durch den Kopf gehen lassen. Wahrscheinlich werde ich doch auf Pyqt zurück greifen, da ich zu Qt4 ja auch ein Buch habe.

Grüsse Markus
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Hallo,
feldmann_markus hat geschrieben:Danke für die Antworten. Ich werde es mir nochmal durch den Kopf gehen lassen. Wahrscheinlich werde ich doch auf Pyqt zurück greifen, da ich zu Qt4 ja auch ein Buch habe.

Grüsse Markus
warte mal! Wenns dir nur um Tabs geht, hier bitte.

einleitung....
Schritt1: http://www.python-forum.de/topic-12034. ... light=tile

test..

Code: Alles auswählen

import Tilewrapper
import Tkinter
import tkFont
from Tkconstants import *

class Taschenrechner(Tkinter.Frame): 
    
    def __init__(self,master=None):
        
        Tkinter.Frame.__init__(self, master) 
        self.pack(expand=YES, fill=BOTH)    
        
        self.stringvar = Tkinter.StringVar() 
        self.entry = Tilewrapper.Entry(self, 
                                textvariable=self.stringvar, 
                                font=('tahoma',40,'bold') ) 
        self.entry.pack(side=TOP, expand=NO, 
                            fill=BOTH, 
                            padx=10, pady=10) 
                    
        for tasten in ('789/', '456*','123-', '.0+='): 
            self.frame1 = Tkinter.Frame(self) 
            self.frame1.pack(side=TOP, expand=YES, fill=BOTH, padx=10) 
            for zeichen in tasten: 
                self.b = Tilewrapper.Button(self.frame1, 
                                text=zeichen, 
                                command=lambda z=zeichen, 
                                var=self.stringvar, : var.set(var.get() + z)) 
                self.b.pack(side=LEFT, expand=YES, fill=BOTH) 
                
            if zeichen == '=': 
                self.b.configure(command=self.rechnen) 
        
    def rechnen(self):
        
        rec = str(eval(self.stringvar.get())) 
        self.entry.delete(0, END) 
        self.entry.insert(END, str( rec))
        
class MainApp:
    
    def __init__(self, parent):
       
        parent.tk.call("package", "require", "tile")
        parent.geometry('400x300')
           
        nb = Tilewrapper.Notebook(parent)
        nb.pack(expand=YES, fill=BOTH)

        t = Taschenrechner(nb)
        b1 = Tilewrapper.Button(nb, text="Button1")
        b1.pack(padx=10, pady=10)
        nb.add(b1, text="Notebook 1")
         
        b2 = Tkinter.Button(nb, text="Button2", bg='blue')
        nb.add(b2, text="Notebook 2")
        nb.add(t, text='rechner')

def _main():
    
    root = Tkinter.Tk()
    main = MainApp(root)
    root.mainloop()
    
if __name__=='__main__':
    _main()
Gruss
pyStyler
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Wenn es ohne Zusatzinstallation sein soll:
http://aspn.activestate.com/ASPN/Cookbo ... ipe/188537

Oder die Python Mega Widgets Da die in purem Python geschrieben sind, können sie einfach im gleichen Ordner wie dein Programm liegen.
Antworten