Das deutsche Python-Forum

Diskussionen rund um die Programmiersprache Python
Aktuelle Zeit: Fr Sep 03, 2010 02:08

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Anfänger hat Probleme mit Bindings...
BeitragVerfasst: Fr Okt 19, 2007 20:50 
User
Benutzeravatar

Registriert: So Sep 16, 2007 16:19
Beiträge: 28
Code:
#! /usr/bin/python
# -*- coding: utf-8 -*-

from Tkinter import *

class App:
        def klick(event):
                textfenster.insert(END, abschnitt.curselection())

class GUI:
        def __init__(self, master):
                global textfenster
                global abschnitt
               
                frame = Frame(master)
                frame.pack()
               
                textfenster = Text(frame)
                textfenster.pack(side=RIGHT)
               
                abschnitt = Listbox(frame)
                for item in ['Vorgeschichte', 'Chronologie', 'Orte', 'Personen', 'Gegenstände']:
                        abschnitt.insert(END, item)
                abschnitt.pack(side=LEFT, fill=Y, expand=1)
                abschnitt.bind('<1>', app.klick)

class Abenteuer:
        pass

root = Tk()
app = App()
gui = GUI(root)
root.mainloop()


Was mache ich falsch? Wie formuliere ich das Binding richtig, sodass er mir die Methode klick ausführt? Oder mache ich in der Formulierung der Klasse schon einen Fehler?


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 19, 2007 21:36 
Moderator

Registriert: Mi Jan 26, 2005 00:29
Beiträge: 11277
Da macht Du so einiges falsch. Erstmal beim Vorstellen des Problems. Da hättest Du auch den Fehler mitteilen können (wenn man auf einen der Texte klickt):

Code:
Traceback (most recent call last):
  File "lib-tk/Tkinter.py", line 1406, in __call__
    return self.func(*args)
TypeError: klick() takes exactly 1 argument (2 given)


Das ist doch schon mal eine ziemlich deutliche Meldung.

Du solltest den Sternchenimport und die ``global``-Anweisungen loswerden. Und vielleicht erst einmal Klassen/Objekte ohne GUI lernen. Die Grundlagen also. Es macht keinen Sinn etwas in Objekte zu kapseln, wenn am Ende doch alles über globale Namen abgewickelt wird.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 19, 2007 22:47 
User
Benutzeravatar

Registriert: So Sep 16, 2007 16:19
Beiträge: 28
Ja, vielleicht. Mein Problem habe ich im übrigen alleine gelöst...

Aber was spricht dagegeben die GUI in einer Klasse zu verschachteln? Dinge wie das Menu werde ich nirgendwo anders benötigen.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 19, 2007 23:16 
User

Registriert: Mo Jun 12, 2006 15:24
Beiträge: 311
Agroschim hat geschrieben:
Ja, vielleicht. Mein Problem habe ich im übrigen alleine gelöst...
es war aber auch nicht wirklich argschwer, nachdem dich BlackJack auf die fehlermeldung hingewiesen hat.
Agroschim hat geschrieben:
Aber was spricht dagegeben die GUI in einer Klasse zu verschachteln? Dinge wie das Menu werde ich nirgendwo anders benötigen.
BlackJack hat geschrieben:
Es macht keinen Sinn etwas in Objekte zu kapseln, wenn am Ende doch alles über globale Namen abgewickelt wird.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 20, 2007 00:08 
User
Benutzeravatar

Registriert: So Sep 16, 2007 16:19
Beiträge: 28
Okay, dumme Fragen...


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 20, 2007 00:43 
Moderator

Registriert: Mi Jan 26, 2005 00:29
Beiträge: 11277
Es spricht absolut nichts dagegen die GUI in einer Klasse zu kapseln, im Gegenteil. Nur tust Du das nicht.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 20, 2007 00:46 
User
Benutzeravatar

Registriert: So Sep 16, 2007 16:19
Beiträge: 28
Schon klar, ich habs ganz rausgenommen. Ist gleich übersichtlicher...

Sagt mir lieber mal, wie ich dem jetzt beibringe auf Strg+V das Clipboard in mein Textfeld einzufügen... Kopieren geht ja ganz wunderbar.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 20, 2007 11:17 
User
Benutzeravatar

Registriert: Mi Jun 07, 2006 21:44
Beiträge: 1295
Das geht doch genauso wunderbar ohne irgendwelche Änderungen, zumindest bei mir auf Windows XP.
MfG
HWK


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 20, 2007 13:09 
User

Registriert: So Sep 03, 2006 16:11
Beiträge: 419
Wohnort: in den weiten von NRW
Ansonsten kann mans auch selbst einbauen. Mit der Forensuche solltest du einiges finden. Und in der Doku natürlich auch. :wink:


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: So Okt 21, 2007 16:14 
User
Benutzeravatar

Registriert: So Sep 16, 2007 16:19
Beiträge: 28
Letzteres versuche ich...


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de