probleme mit einem about fenster...

Fragen zu Tkinter.
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

2.3.2 (active python),
ich glaube da is tcl/tk 8.4 (kann mich auch irren mit der version) dabei
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

hmm komisch hab ich auch. Warum packst Du das ganze nicht in eine Funktion, die dann das Aboutfenster aumacht und beim druck auf ok schließt?
Und die Funktion importierst aus dem Modul.

Gruß

Dookie
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo OLF & Dookie

Es ist schon so, dass mein Script
eigendlich aus zwei besteht, ich
hätte diese separat auflisten müssen.
Ich muss noch ein wenig mit dem Forum-
Editor üben um eine bessere Darstellung
hinzukriegen.
Mein Vorschlag besteht aus einem Haupt-
script und dem About-Script.

Gruss wuf
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

also würdest du die klasse in eine seperate datei (bei mir about.py) schreiben?
ich weiß was du meinst, aber ich komme mir deinem post, in dem der ganze code (als eine datei) steht nicht ganz klar :oops:
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Ich zerleg mal den Code von wuf

Hauptscript

Code: Alles auswählen

#! Python
# -*- coding: UTF-8 -*-

# Hauptscript

from Tkinter import *
from About   import *

def ende():
   fenster.destroy()

def info():
   About(content)

if __name__ == '__main__':
   fenster = Tk()

   ScreenWidth  = fenster.winfo_screenwidth()
   ScreenHeight = fenster.winfo_screenheight()

   xpos   = 0
   ypos   = 0
   width  = 300
   height = 100
   fenster.wm_geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))

   fenster.title('Hauptfenster')

   content =  "bla\nbla\nbla\n...\n"
   content += "Here comes DER OLF\n"
   content += "the camel hunter!"

   cancel_button = Button(fenster, text = "Schliessen", command = ende)
   cancel_button["height"] = 1
   cancel_button["width"] = 12
   cancel_button["border"] = 3
   cancel_button.pack(side=BOTTOM)

   Info_button = Button(fenster, text = "About", command = info)
   Info_button["height"] = 1
   Info_button["width"] = 12
   Info_button["border"] = 3
   Info_button.pack(side=BOTTOM)

   fenster.mainloop()
Aboutscript, wird vom Hauptscript importiert

Code: Alles auswählen

from Tkinter import *
class About(Toplevel):
   def __init__(me,meldung='About'):

      #~~ Initialisierung eines Rahmenlosen Toplevelfenster
      Toplevel.__init__(me)
      # Erzeugt Rahmenloses Fenster
      me.overrideredirect(TRUE)
      # Sperrt Schaltflächen auf dem Hauptfenster
      me.grab_set()

      # Berechnung für ein Bildschirmzentriertes About-Fenster
      width        = 250
      height       = 150
      ScreenWidth  = me.winfo_screenwidth()
      ScreenHeight = me.winfo_screenheight()
      xpos         = (ScreenWidth-width)/2
      ypos         = (ScreenHeight-height)/2

      me.geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))
      me.title ('About..')

      me['bg']     = 'steelblue'
      me['bd']     = 3
      me['relief'] = RAISED

      aboutlbl = Label(me,anchor="center", text= meldung,bg=me['bg'],fg="yellow")
      aboutlbl.pack(padx=5,pady=5)

      ok_button = Button(me, text = "OK",
                     highlightbackground = me['bg'],
                     command = me.destroy
                     )
      ok_button.pack(padx=5,pady=5) 
eventuell solltest me im Aboutscript noch durch self ersetzen. Lauffen tuts auch so, aber in Python verwendet man self bei Methoden als erstes Argument.


Gruß

Dookie
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo Dookie

Deine Neudarstellung meines Scripts für
die About-Anwendung gefällt mir sehr!
Besteht für mich irgend wie die Möglichkeit
deine Scriptdarstellung in den Forum-Editor
zurück zu lesen um mehr zu erfahren, welche
Steuercodes du verwendet hast und wie diese
im editierten Text platziert werden müssen
um deine Textformatierung zu bekommen.

Besten Dank für deine Bemühung.

Gruss wuf
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi wuf,

ich hab eigentlich nicht viel gemacht,
einfach auf den code-button oben in der Buttonleiste unter dem Feld für den Titel geklickt, dann unten bis zu Deinem Posting mit dem Source gescrollt und den ersten Teil vom Source markiert, dann den Text mit mittlerer Maustaste (Linuxtypisch) ins Eingabefeld für mein Posting kopiert.
Danach nochmal auf den code-button geklickt um das code-tag zu schliessen.
Dann hab ich den Text der zwischen den Scripts steht reingeschrieben und wieder den code-button angeklickt und den 2. Teil vom source markiert und copiert. nochmal code-button angeklickt und den Rest von meinem Text geschrieben - fertig.


Gruß

Dookie
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

hey, danke für das script. ich hab am anfang gar nicht kapiert, was die klasse eigentlich bewirkt, aber jetzt hab ich das verstanden. ;)
Antworten