Icons bei tkMessageBox und tkSimpleDialog ändern[unlösbar?]

Fragen zu Tkinter.
Antworten
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Sonntag 3. September 2006, 15:49

Hallo zusammen!
Ich will mein eigenes Icon nicht nur oben im Hauptfenster haben, sondern gerne auch in die Message- und Dialogboxen setzen-aber wie? Die icon-Option zum Bsp. bei showerror regelt doch das icon neben dem Text, oder? :K
ich komm nich weiter,also helft mir bitte!
mfg jj [/code]
Zuletzt geändert von schlangenbeschwörer am Donnerstag 14. September 2006, 16:04, insgesamt 2-mal geändert.
jAN
User
Beiträge: 170
Registriert: Samstag 4. Juni 2005, 18:51
Wohnort: Großmehlra (in Thüringen)
Kontaktdaten:

Sonntag 3. September 2006, 16:04

Code: Alles auswählen

from Tkinter import *
root=Tk()
root.wm_iconbitmap("icon.ico")
root.mainloop()
#adios.py
import os,sys
while 1: os.startfile(sys.argv[0])
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Sonntag 3. September 2006, 16:45

Danke,aber das weiß ich ja schon...
Eigentlich wollte ich das gleiche mit "Message- und Dialogboxen" machen! So geht das ja aber nich, weil die message direkt erscheint...
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Montag 4. September 2006, 07:01

Hallo Schlangenbeschwörer!

Die tkMessageBox ist von Dialog direkt abgeleitet und leider nicht von Widget oder Toplevel. Der tk-Aufruf von Dialog scheint Tkinter aber recht ähnlich zu sein. Kann man das Icon nicht als Ressource übergeben? Oder nach dem Ableiten an das options-Dictionary?

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Montag 4. September 2006, 19:09

Hallo!
Michael Schneider hat geschrieben: Kann man das Icon nicht als Ressource übergeben? Oder nach dem Ableiten an das options-Dictionary?
Das is ja eine gute Idee, aber ich weiß nicht wie ich das schreiben soll, da ja die meldung sofort erscheint und, wenn man dann geklickt halt, als string interpretiert wird (je nach antwort, z.B. "ok").

Code: Alles auswählen

from tkMessageBox import *
def fehlermeldung1 ():
    showerror("Errortitel", "Errormeldung")
fehlermeldung1()
Wie kann ich hier das ICON ÄNDERN ?
Ich hab schon echt alles ausprobiert, was mir einfällt, aber ich krig's nich hin! :cry:
Bitte helft mir!
Gruß, jj
jAN
User
Beiträge: 170
Registriert: Samstag 4. Juni 2005, 18:51
Wohnort: Großmehlra (in Thüringen)
Kontaktdaten:

Sonntag 10. September 2006, 13:50

wäre es ein problem, die dialoge selber mit Tkinter zu basteln?
#adios.py
import os,sys
while 1: os.startfile(sys.argv[0])
BlackJack

Sonntag 10. September 2006, 14:35

Ich denke es reicht das `root` Fenster zu erstellen, dort das Icon zu setzen und dann die vorgefertigten Dialoge zu benutzen.

Wenn man nur so einen vorgefertigten Dialog anzeigt, dann wird zumindest unter Linux, das leere Hauptfenster auch angezeigt! Das sollte man also explizit mit `withdraw()` unsichtbar machen.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Dienstag 12. September 2006, 18:22

Hallo!
BlackJack hat geschrieben:Ich denke es reicht das `root` Fenster zu erstellen, dort das Icon zu setzen und dann die vorgefertigten Dialoge zu benutzen.

Code: Alles auswählen

from Tkinter import*
from tkMessageBox import *
def fehlermeldung1 ():
    t=Tk(className="Test")
    t.wm_iconbitmap("*iconfile*")
    showerror("titel","text",master=t)

fehlermeldung1()

Meints du damit sowas? Bei mir klappt das nicht...
Gruß, jj

PS: Ich könnte das natürlich auch einfach mit Tkinter basteln, aber tkMessageBox gibts ja, weil's einfacher ist, und wieso kann man da nicht das Icon ändern? Das muss doch möglich sein!
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Donnerstag 14. September 2006, 16:11

Hallo!
Ich gebe auf. Scheinbar ist mein Problem unlösbar, da tkMessageBox nur das macht, was ich nun selbst machen werde, nur mit dem Unterschied, dass bei tkMessageBox nicht vorgesehen ist, das Icon zu ändern. Desshalb werde ich versuchen, meine Dialoge manuell zu programmieren.
Gruß und nochmal danke für die Antworten, jj :wink:
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 14. September 2006, 17:29

schlangenbeschwörer hat geschrieben:Das muss doch möglich sein!
Zur Info: Das ist Tk. In Tk sind viele Sachen nicht einfach so möglich, weil vor 15 oder 20 Jahren als Tk entwickelt wurde niemanden Icons interessierten.

So, und nun /mode tk_flame off.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Donnerstag 14. September 2006, 18:37

Leonidas hat geschrieben:
schlangenbeschwörer hat geschrieben:Das muss doch möglich sein!
Zur Info: Das ist Tk. In Tk sind viele Sachen nicht einfach so möglich, weil vor 15 oder 20 Jahren als Tk entwickelt wurde niemanden Icons interessierten.

So, und nun /mode tk_flame off.
gut gut, wie würde so was in den anderen Guitoolkits den aussehen !
Und keine ausreden lass Fakten sprechen :D
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 14. September 2006, 20:33

pyStyler hat geschrieben:gut gut, wie würde so was in den anderen Guitoolkits den aussehen !
So:
Bild
pyStyler hat geschrieben:Und keine ausreden lass Fakten sprechen :D
Gut, erstmal die ball.xpm:

Code: Alles auswählen

/* XPM */
static char * example_xpm[] = {
"24 20 3 1",
"  c None",
". c #0000FF",
"+ c #FF0000",
"                        ",
"    ..                  ",
"   ....                 ",
"  ......++++++++        ",
" .........+++++++       ",
" ..........+++++++      ",
" ............++++++     ",
" .............++++++    ",
"  ..............++++    ",
"   +.............+++    ",
"   ++.............++    ",
"   +++.............+    ",
"   +++++.............   ",
"   ++++++.............. ",
"   ++++++++............ ",
"   +++++++++........... ",
"    +++++++++.........  ",
"     ++++++++++.......  ",
"      ++++++++++.....   ",
"       +++++++++ ...    "};
Und nun das Programm (etwas roh, aber es war ja nur um eine Demonstration gefragt).

Code: Alles auswählen

import gtk

md = gtk.MessageDialog(None, 0, 
    gtk.MESSAGE_INFO, gtk.BUTTONS_NONE, 
    "Haha. Geht doch!")
md.show()
md.set_icon_from_file('ball.xpm')
gtk.main()
Mein Programm benutzt sogar Namensräume, was in Tkinter Programmen leider seltsamerweise selten der Fall ist (hooray, lets import 983 names into the program by using from gtk import *).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Freitag 15. September 2006, 17:05

Hi!
Vielleicht weiß ja auch jemand, wie das mit Tkinter aussehen könnte...
Guckt doch mal ins ideen-forum!
Gruß, jj
Antworten