Seite 1 von 1

Browsing Programm im Canvas

Verfasst: Donnerstag 3. Juli 2003, 11:31
von Pythonaya
Hi @ all,
ich programmiere gerade ein Programm in Tkinter, was später Setups von einer CD aus starten soll.
Das browsing läuft über ein Canvas und wird mithilfe vom Binding realisiert.

So sieht der Quelltext aus:

Code: Alles auswählen

from Tkinter import *
from thread import*
from os import*


root=Tk()
root.title('Auswahl')
root.config(background='White')

pinstimg=PhotoImage(file='D:\Programmieren\Python20\FullPyThONCD\Schlange.gif')
ordneimg=PhotoImage(file='D:\Programmieren\Python20\FullPyThONCD\Ordner.gif')

Kissen=Canvas(root, background='White', width=640, height=480)
Kissen.grid(row=1, column=2)

pyinstall=Kissen.create_image(320,320, image=pinstimg, anchor=CENTER)
pyinstext=Kissen.create_text(320,440,\
        text='Python installieren', font='ARIAL 25')

pyordner1=Kissen.create_image(78,60, image=ordneimg, anchor=CENTER)
pyortext1=Kissen.create_text(78,110,\
        text='Spiele', font='ARIAL 14')

pyordner2=Kissen.create_image(238,60, image=ordneimg, anchor=CENTER)
pyortext2=Kissen.create_text(238,110,\
        text='Anwender', font='ARIAL 14')

pyordner3=Kissen.create_image(398,60, image=ordneimg, anchor=CENTER)
pyortext3=Kissen.create_text(398,110,\
        text='Scherz', font='ARIAL 14')

pyordner4=Kissen.create_image(558,60, image=ordneimg, anchor=CENTER)
pyortext4=Kissen.create_text(558,110,\
        text='LOL', font='ARIAL 14')

def viva():
    if i==0:
        Kissen.itemconfig(pyortext1, fill='Blue')
        i=1
    else:
        Kissen.itemconfig(pyortext1, fill='Black')
        i=0

#Kissen.tag_bind(pyordner1, '<Enter>', Kissen.itemconfig(pyortext1, fill='Blue'))
#Kissen.tag_bind(pyordner1, '<Leave>', Kissen.itemconfig(pyortext1, fill='Black'))
Kissen.tag_bind(pyordner1, '<Button-1>', viva)


Der Sourcecode ist bisher nur ein Test, um nach und nach das Programm zu erweitern. (Also nicht wundern, wenn ihr keine "Wirklichen Funktionen" seht.

Nun habe ich 2 Probleme:
1.Wenn ich das Programm laufen lasse, kommt immer eine Fehlermeldung beim klicken auf den ersten Ordner(Bild oben links).
Ich habe irgendetwas übersehen!

2.Wie kann ich unter Python(mit Windows) den CD-ROM-Laufwerksbuchstaben herrausfinden.(Er bleibt nicht immer gleich)

MFG,
Florian

Re: Browsing Programm im Canvas

Verfasst: Donnerstag 3. Juli 2003, 12:19
von Voges
Hallo!

zu 1.
Der Wortlaut der Fehlermeldung wäre hilfreich.

zu 2.
Das wird schwierig. Auf meinem W2K-Rechner z.B. erkennt der Explorer fünf CD-ROM-Laufwerke, 2 davon sind echte und 3 virtuelle. Du wirst also dem Anwender eine Auswahlliste präsentieren müssen. Wie man nun CD-ROM-Laufwerke erkennt, weiß ich nicht, sollte aber mit den "Windows Extensions" irgendwie gehen.

Jan

Prob:.

Verfasst: Donnerstag 3. Juli 2003, 12:33
von Pythonaya
Hiho,
ging ja schnell!!!

zu 1.

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "d:\programmierprogramme\python20\lib\lib-tk\Tkinter.py", line 1287, in __call__
    return apply(self.func, args)
TypeError: no arguments expected
zu 2.
Kannst du mir dann sagen, wie ich ein drop-downmenü mit Tkinter erzeugen kann???


Danke,
Florian

Achso, ...

Verfasst: Donnerstag 3. Juli 2003, 12:38
von Pythonaya
... kann mir noch jemand schreiben, wie ich Objekte im Canvas für den Benutzer unsichtbar mache, bzw. sie aus dem Canvas hole, ohne sie wegzuschmeißen, damit ich sie später nochmal benutzen kann???

Danke,
Florian

Ich dummerchen

Verfasst: Donnerstag 3. Juli 2003, 13:35
von Pythonaya
Hiho,
ich dummerchen hab was übersehen gehabt zu 1.
in die Prozedurparameter muss e eingetragen werden, dann funztz!!!
Naja, manchmal hab ich halt nen Brett vorm Kopf beim Programmieren...

Trotzdem Danke,
Florian

Re: Ich dummerchen

Verfasst: Donnerstag 3. Juli 2003, 14:10
von Voges
Zu 2. kann ich auch nichts sagen. Bisher hab' ich um Menus immer einen Bogen gemacht.

Zum Unsichbarmachen von Canvas-Items fiele mir nur ein, die Items mit coord() irgendwo außerhalb des Canvas zu platzieren.

Jan

Verfasst: Donnerstag 3. Juli 2003, 17:40
von Pythonaya
Joa, das hatte ich mir auch schon gedacht. Ich könnte auch ein Weißes Rechteck als Hintergrund benutzen, dass immer wieder nach vorne rutscht und somit das alte Menü verdeckt. Wenn ich dann ins alte Menü zurück will, ziehe ich die Weiße Wand nach vorne und confige die Items in den Vordergrund.


Danke nochmal,
Florian