Seite 1 von 1

Tkinter unter Pythwonwin

Verfasst: Freitag 22. Juli 2005, 13:06
von Black Dragon
hi leuts.

ich hab en problem (wie so fast alle hier in dem forum ( :D :o 8) ))
und zwar programmier ich in pythonwin und will nun meinen programmen en gui geben.

hab schon gelesen das tkinter für sowas da sein soll hab mir auch shcon einige beispiele und so weiter angeschaut. bloß alle funktionen aufrufe von tkinter funktionieren bloß in der normalen python.exe und nicht im pythonwin. der übergeht praktisch die anweisungen ohne auch nur im geringsten en fenster zu öffnen.

(die frage stelle ich mir öfters:) WARUM?

Verfasst: Freitag 22. Juli 2005, 13:56
von Redprince
Moinsen...
Also bei mir funktioniert Tkinter in PythonWin ohne Probleme (PythonWin 2.4.1 und Python 2.4 auf Windows 2000). Rück doch ein wenig Code heraus ;)

Verfasst: Freitag 22. Juli 2005, 16:25
von mawe
Hi!

Ich kenn PythonWin nicht, aber ich schätze mal, dass es selbst eine Tkinter-Anwendung ist. Da kann es zu Problemen kommen, wenn Du daraus Tkinter aufrufst (so wie bei idle).

Gruß, mawe

Verfasst: Freitag 22. Juli 2005, 17:13
von Leonidas
mawe hat geschrieben:Ich kenn PythonWin nicht, aber ich schätze mal, dass es selbst eine Tkinter-Anwendung ist.
Nein, PythonWin ist eine MFC Anwendung.. was es aber nicht besser macht ;)

Nichts geht über die Kombination SciTe + gute Shell :P

Verfasst: Montag 25. Juli 2005, 07:48
von Black Dragon

Code: Alles auswählen

from Tkinter import *

root=Tk()
lab=Label(root,text="Bitte die ID eingeben!")
lab.pack(side=TOP)
eingabe = Entry(width=20)
eingabe.pack(side=BOTTOM)
def hole():
     s=eingabe.get()
but = Button(text='Start', command = hole)
but.pack(side = BOTTOM)
ganz einfacher code meiner auffasung nach.

EDIT by mawe: Code in python-tags gesetzt

Verfasst: Montag 25. Juli 2005, 08:50
von mawe
Da fehlt ein root.mainloop() ;)

Verfasst: Montag 25. Juli 2005, 13:32
von Black Dragon
hatte ich auch am anfang gedacht, wenn ich das aber eingebaut hatte. hat der das Fenster mehrere male geöffnet und ist dann schließlich abgestürzt.
Inzwischen macht ers jetzt auch normal. aber manschmal öffnet der das immer noch mehrere male. weiß jemand woran das liegt?
is doch scheiße wenn das programm manschmal funzt und manschmal net.

:?
gruß und danke
black dragon

Verfasst: Montag 25. Juli 2005, 14:43
von nbkr
Black Dragon hat geschrieben: is doch scheiße wenn das programm manschmal funzt und manschmal net.
Wieso? M$ hat einen ganze Unternehmenskultur darauf aufgebaut.


SCNR :lol:

Verfasst: Montag 25. Juli 2005, 16:30
von Leonidas
Geht ohne Probleme:

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: latin-1 -*-
import Tkinter as tk

root = tk.Tk()
lab = tk.Label(root,text="Bitte die ID eingeben!")
lab.pack(side=tk.TOP)
eingabe = tk.Entry(width=20)
eingabe.pack(side=tk.BOTTOM)

def hole():
    s = eingabe.get()
    
but = tk.Button(text='Start', command = hole)
but.pack(side = tk.BOTTOM)

root.mainloop()
Wobei ich eine ganz normale Shell nutze und weder IDLE noch Pythonwin sondern einen Editor der sich schon oft bewährt hat: SciTE.

Edit: Code gefixt.

Verfasst: Montag 25. Juli 2005, 16:36
von mawe
Naja Leonidas, ob das hilfeich ist? ;)
Schliesslich hat Black Dragon ja geschrieben, dass das Script läuft, nur eben mit pythonwin nicht.

Verfasst: Montag 25. Juli 2005, 16:54
von Leonidas
mawe hat geschrieben:Naja Leonidas, ob das hilfeich ist? ;)
Schliesslich hat Black Dragon ja geschrieben, dass das Script läuft, nur eben mit pythonwin nicht.
Nunja, ich habe immerhin den Code neu formatiert 8)

Also in meinem PythonWin für Py 2.4 build 204 funktioniert es (also mit meinem Code). Jedoch ist PythonWin nicht ein Editor der mich beeindruckt ;)

Verfasst: Montag 25. Juli 2005, 18:20
von mawe
Ja, formatiert hast Du den Code sehr schön, das muss ich neidlos anerkennen :D

Verfasst: Dienstag 26. Juli 2005, 07:50
von Black Dragon
naja über microschrott brauchen wir nicht reden oder?
und du hast recht leonidas der code is vollkommen richtig(und wunderschön formatiert) aber warum öfnnet der manschmal mehrere fenster wo teile davon sind was eigentlich im großen normalen fenster sein sollte. das passiert zwar bloß in 10% der fälle aber ist doch trotzdem scheiße.

:oops:
gruß Black Dragon

Verfasst: Mittwoch 27. Juli 2005, 13:39
von Black Dragon
hey ho
schonwieder ich.
mit ner neuen frage! :D
wie kann ich den die Zeichen einer Eingabe zählen?
irgendwie mit

Code: Alles auswählen

e=entry.get(count) oder wie?

Verfasst: Mittwoch 27. Juli 2005, 15:39
von mawe
Die Länge einer Zeichenkette (und damit die Anzahl der Zeichen) erhälst Du mit ... len() ;)

Verfasst: Donnerstag 28. Juli 2005, 07:51
von Black Dragon
:oops: :oops: :!: :cry:
stimmt auffallend -.-
thx