Seite 1 von 1

Messagebox ohne Hauptfenster, Konsolenanwendung

Verfasst: Sonntag 1. Dezember 2013, 10:12
von bastel-wastel
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

Re: Messagebox ohne Hauptfenster, Konsolenanwendung

Verfasst: Sonntag 1. Dezember 2013, 10:40
von BlackJack
@bastel-wastel: Man kann das `Tk()`-Hauptfenster selber erzeugen und mit der `withdraw()`-Methode unsichtbar machen.

Re: Messagebox ohne Hauptfenster, Konsolenanwendung

Verfasst: Sonntag 1. Dezember 2013, 11:00
von bastel-wastel
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