Messagebox ohne Hauptfenster, Konsolenanwendung

Fragen zu Tkinter.
Antworten
bastel-wastel
User
Beiträge: 28
Registriert: Samstag 20. Februar 2010, 15:14

Hallo miteinander,

ich schreibe hier einige kleine Berechnungsprogramme, die nur in der Konsole laufen. In bestimmten Fällen möchte ich den Benutzer jedoch über eine grafische Tkinter Messagebox auf etwas aufmerksam machen. Hierzu habe ich auch ein Minimalbeispiel:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def mbox(message=None):
  import tkMessageBox
  tkMessageBox.showinfo("Info", message)

mbox('Achtung')
Das funktioniert im Prinzip auch:
Bild

Allerdings erscheint neben der eigentlichen Messagebox noch ein weiteres Fenster (mit dem Titel "tk"), das meiner Meinung nach keinen Zweck erfüllt. Hat jemand nen Tipp, wie ich dieses unterdrücken kann?

Grüße
bastel
BlackJack

@bastel-wastel: Man kann das `Tk()`-Hauptfenster selber erzeugen und mit der `withdraw()`-Methode unsichtbar machen.
bastel-wastel
User
Beiträge: 28
Registriert: Samstag 20. Februar 2010, 15:14

Danke für Deine Antwort, so funktioniert es

Code: Alles auswählen

def mbox(message=None,title='Info'):
  import tkMessageBox
  import Tkinter
  window = Tkinter.Tk()   # main-window
  window.wm_withdraw()    # hidden
  tkMessageBox.showinfo("Info", message)
  window.destroy()        # destroy main-window
Antworten