Oft möchte man die wx.MessageBox ein wenig erweitern um z.B. ein eigenes Bild anzeigen zu können oder um z.B. im Text eigene Hyperlinks unterbringen zu können.
In diesen Fällen muss man sich selber einen Dialog basteln. Und hier ist eine Basis, von der du z.B. aus gehen könntest.

Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
import textwrap
wx.SetDefaultPyEncoding("iso-8859-15")
class MyMessageDialog(wx.Dialog):
def __init__(self, parent = None, title = "Example"):
wx.Dialog.__init__(self, parent, -1, title)
# Schriftgröße
font = self.GetFont()
font.SetPointSize(9)
self.SetFont(font)
# Haupt-Sizer
vbox_main = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(vbox_main)
# Sizer für den oberen Bereich (horizontal)
hbox_content = wx.BoxSizer(wx.HORIZONTAL)
vbox_main.Add(hbox_content, 0, wx.EXPAND | wx.ALL, 5)
# Icon
icon_bmp = wx.ArtProvider_GetBitmap(wx.ART_INFORMATION)
stat_bmp = wx.StaticBitmap(self, bitmap = icon_bmp)
hbox_content.Add(stat_bmp, 0, wx.ALL, 15)
# Hinweistext
message = textwrap.dedent(
"""
Das ist immer so eine Sache mit diesen Texten. Man weiß
nie was man so schreiben soll. Aber irgendwie möchte man
doch etwas an Text zusammen bekommen...
"""
).strip()
lab_message = wx.StaticText(self, label = message)
hbox_content.Add(lab_message, 1, wx.ALL, 5)
# Linie
vbox_main.Add(wx.StaticLine(self), 0, wx.EXPAND)
# Sizer für die Buttons
hbox_buttons = wx.BoxSizer(wx.HORIZONTAL)
vbox_main.Add(hbox_buttons, 0, wx.EXPAND | wx.ALL, 5)
# Cancel-Button
btn_cancel = wx.Button(self, id = wx.ID_CANCEL, label = "Abbrechen [ESC]")
hbox_buttons.Add(btn_cancel, 0, wx.ALL, 5)
# Spreizer
hbox_buttons.AddStretchSpacer()
# OK-Button
btn_ok = wx.Button(self, id = wx.ID_OK, label = "&OK")
hbox_buttons.Add(btn_ok, 0, wx.ALL, 5)
btn_ok.SetFocus()
btn_ok.SetDefault()
# Layout
self.Fit()
if parent:
self.CenterOnParent()
else:
self.Center()
def main():
"""Testing"""
app = wx.PySimpleApp()
d = MyMessageDialog()
if d.ShowModal() == wx.ID_OK:
print "OK"
else:
print "nicht OK"
if __name__ == "__main__":
main()
Gerold

Suchworte: Dialog Message Box MessageDialog handgemacht selbst