Seite 1 von 1
Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 15:57
von jtschoch
Ich habe ein Problem mit ScrolledText.
Python gibt mir folgende Fehlermeldung aus:
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1414, in __call__
return self.func(*args)
TypeError: Help() takes exactly 1 argument (0 given)
--------------------------------------------------------------------------------------
Ich habe hier den ausschnitt aus dem Programm
Code: Alles auswählen
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import Tkinter
import tkMessageBox
from Tkinter import *
root=Tkinter.Tk()
root.title("test")
root.config(bg = "#E3E2E9")
def Help(self):
root = Tk()
root.title('Help')
ScrolledText(root, text='blabla\nblabla')
root.mainloop()
########################################################
#Menue
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenue = Menu(menubar, tearoff=0)
menubar.add_cascade(label="File", menu=filemenue)
filemenue.add_command(label="Exit", command=exit)
helpmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Help", menu=helpmenu)
helpmenu.add_command(label="Help Index", command=Help)
root.config(menu=menubar)
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 16:05
von Xynon1
Nimm das "self" bei Help raus, das hat dort nichts verloren.
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 16:10
von jtschoch
Dann kommt die Fehlermeldung:
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1414, in __call__
return self.func(*args)
File "J:\JT_proj\python\wetterprog\wettera.py", line 20, in Help
ScrolledText(root, text='blabla\nblabla')
NameError: global name 'ScrolledText' is not defined
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 16:35
von BlackJack
@jtschoch: Das könnte daran liegen das `ScrolledText` nicht definiert ist. Sagt die Meldung ja auch. Die Python-Dokumentation zur Standardbibliothek hat einen Index. Suche da mal nach `ScrolledText` -- dann erfährst Du in welchem Modul das definiert ist.
Edit: Von `Tk` darfst Du in einem Programm nur *ein* Exemplar erstellen. Das ist *das* Hauptfenster. Wenn es davon mehrere gibt, ist das Verhalten der GUI nicht mehr definiert. Wenn Du zusätzliche Fenster brauchst, dann musst Du dafür `Toplevel`-Exemplare nehmen.
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 16:40
von jtschoch
danke
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 16:42
von jtschoch
Das steht da drin
Availability: Tk.
The ScrolledText module provides a class of the same name which implements a basic text widget which has a vertical scroll bar configured to do the ``right thing.'' Using the ScrolledText class is a lot easier than setting up a text widget and scroll bar directly. The constructor is the same as that of the Tkinter.Text class.
The text widget and scrollbar are packed together in a Frame, and the methods of the Grid and Pack geometry managers are acquired from the Frame object. This allows the ScrolledText widget to be used directly to achieve most normal geometry management behavior.
Should more specific control be necessary, the following attributes are available:
frame
The frame which surrounds the text and scroll bar widgets.
vbar
The scroll bar widget.
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 17:10
von jtschoch
und jetzt?
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 17:16
von Xynon1
Na, importieren. Die ScrolledText Klasse steht im Modul "ScrolledText", also importiere die Klasse so, das sie in deinem Modul verfügbar ist.
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 17:22
von jtschoch
import ScrolledText
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 17:22
von jtschoch
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1414, in __call__
return self.func(*args)
File "J:\JT_proj\python\meinname.py", line 39, in Help
ScrolledText(root, text='blablabla')
TypeError: 'module' object is not callable
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 17:30
von Xynon1
Hast du dich schon mal mit Python beschäftigt?! bzw. schonmal mit irgendeiner anderen Programmiersprache?
Die Klasse ist in dem Modul was zufällig den selben Namen trägt, zugegeben nicht ganz glücklich gewählt, aber dennoch sollte man das ohne weiteres hinbekommen. Wenn nicht gibt es ein gutes
Nachschlagewerk, wo man das in spätestens 5 min rausbekommt.
Edit: und hör auf mir andauernd PNs zuschicken wo exakt das selbe drin steh, wie das was du hier postest.
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 17:35
von jtschoch
ich habe mich blos noch nicht mit Tkinker beschäftigt
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 18:15
von jtschoch
kann mal jemand die code schreiben? - ich kapiere es nicht
(richtig)
Code: Alles auswählen
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import Tkinter
import tkMessageBox
from Tkinter import *
root=Tkinter.Tk()
root.title("test")
root.config(bg = "#E3E2E9")
def Help():
root = Tk()
root.title('Help')
ScrolledText(root, text='blabla\nblabla')
root.mainloop()
########################################################
#Menue
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenue = Menu(menubar, tearoff=0)
menubar.add_cascade(label="File", menu=filemenue)
filemenue.add_command(label="Exit", command=exit)
helpmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Help", menu=helpmenu)
helpmenu.add_command(label="Help Index", command=Help)
root.config(menu=menubar)
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 18:25
von Xynon1
Wieso postest du diesen Quelltext schon wieder, meinst du davon wird das Problem besser? (Tipps zu diesem wurden dir von BlackJack auch schon gegeben, die du noch nicht umgesetzt hast)
Du musst einfach nur "von Modul importiere Klasse" oben hinschreiben, was ist denn daran so schwer, wenn du nicht mal das beherschst solltest du vieleicht mal das
Python Tutorial durcharbeiten.
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Freitag 6. Mai 2011, 21:39
von jtschoch
aber was ist eine importiere Klasse
so
[/size]
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Samstag 7. Mai 2011, 04:51
von Xynon1
Ja so würde es gehen, nur so importierst du alles aus dem Modul - was man besser vermeiden sollte, da es einem den Namesraum im eigenen Modul vollstopft. Gilt übrigens auch für dein Tkinter import. Üblich wäre
oder
Code: Alles auswählen
import ScrolledText
ScrolledText.ScrolledText(root, ...)
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Sonntag 8. Mai 2011, 16:59
von jtschoch
so hab ich es gemacht nur er hat mit der Option Text was zu mekkern
Code: Alles auswählen
def Help():
root = Tk()
root.title('Help')
ScrolledText.ScrolledText(root, text = 'blablabla\nblablabla')
root.mainloop()
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1414, in __call__
return self.func(*args)
File "\\Home\jonas\JT_proj\python\blabla.py", line 41, in Help
ScrolledText.ScrolledText(root, text = 'blablabla\nblablabla')
File "C:\Python25\lib\lib-tk\ScrolledText.py", line 31, in __init__
Text.__init__(self, self.frame, **cnf)
File "C:\Python25\lib\lib-tk\Tkinter.py", line 2852, in __init__
Widget.__init__(self, master, 'text', cnf, kw)
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1942, in __init__
(widgetName, self._w) + extra + self._options(cnf))
TclError: unknown option "-text"
TclError: unknown option "-text"
Re: Hilfe habe ein Problem mit ScrolledText
Verfasst: Sonntag 8. Mai 2011, 18:29
von deets
Die Fehlermeldung ist doch sehr klar. Es gibt keinen Parameter "text". Wie kommst du da drauf, dass es den geben koennte? In der Dokumentation steht jedenfalls nichts davon:
http://www.pythonware.com/library/tkint ... ptions.htm
Aber da gibt's auch die Patterns, und da steht, wie's gemacht wird:
http://www.pythonware.com/library/tkint ... tterns.htm