2016-12-26 3 views
-2

Look at the img.Tkinter MessageBox Align

Kann jemand mir helfen, den Text im Meldungsfeld in das Zentrum mit Ausrichtung. Dank


EDIT: Erwartetes Ergebnis:

enter image description here

+0

, was Sie „center tun bedeuten "? zentrieren Sie eine Zeile zur anderen, zentrieren Sie den Text im Fensterrechteck? Sie können immer ein eigenes Fenster erstellen (mit 'tk.Topevel' mit' Label' und Text ausrichten: [Beispiel] (https://github.com/furas/python-examples/tree/master/tkinter/align-grid-pack)) BTW: es sieht aus, als ob Sie Leerzeichen nach '\ n' haben. – furas

+0

https://i-msdn.sec.s-msft.com/dynimg/IC86459.jpeg sehen Sie sich das Bild an ... Ich will, dass der Text ist in der Mitte, danke –

Antwort

1

können Sie Toplevel() verwenden, um eigene Nachrichtenfenster zu erstellen und dann können Sie tun, was Sie wollen.

import tkinter as tk 

# --- functions --- 

def about(): 
    win = tk.Toplevel() 
    win.title("ABOUT") 

    l = tk.Label(win, text="One\ntwo two\nThree Three Three", bg='white') 
    l.pack(ipadx=50, ipady=10, fill='both', expand=True) 

    b = tk.Button(win, text="OK", command=win.destroy) 
    b.pack(pady=10, padx=10, ipadx=20, side='right') 

# --- main --- 

root = tk.Tk() 

b = tk.Button(root, text="About", command=about) 
b.pack(fill='x', expand=True) 

b = tk.Button(root, text="Close", command=root.destroy) 
b.pack(fill='x', expand=True) 

root.mainloop() 

Linux:

enter image description here


BTW: können Sie Datei mit messagebox Code

import tkinter.messagebox 

print(tkinter.messagebox.__file__) 

und öffnen Sie dann in Editor zu sehen, erfahren, wie es gemacht wurde .


EDIT: Sie auch Klasse erstellen können MsgBox und es oft verwenden.

Beispiel zeigt, wie einige Elemente in der Klasse ändern: Label Schriftart, Taste Text und Position

import tkinter as tk 

# --- classes --- 
# you can put this in separated file (it will need `import tkinter`) 

import tkinter 

class MsgBox(tkinter.Toplevel): 

    def __init__(self, title="MsgBox", message="Hello World"): 
     tkinter.Toplevel.__init__(self) 

     self.title(title) 

     self.label = tkinter.Label(self, text=message) 
     self.label['bg'] = 'white' 
     self.label.pack(ipadx=50, ipady=10, fill='both', expand=True) 

     self.button = tkinter.Button(self, text="OK") 
     self.button['command'] = self.destroy 
     self.button.pack(pady=10, padx=10, ipadx=20, side='right') 

# --- functions --- 

def about(): 

    msg = MsgBox("ABOUT", "One\nTwo Two\nThree Three Three") 
    msg.label['font'] = 'Verdana 20 bold' 
    msg.button['text'] = 'Close' 
    msg.button.pack(side='left') 

# --- main --- 

root = tk.Tk() 

b = tk.Button(root, text="About", command=about) 
b.pack(fill='x', expand=True) 

b = tk.Button(root, text="Close", command=root.destroy) 
b.pack(fill='x', expand=True) 

root.mainloop() 

enter image description here


Code auf GitHub: furas/python-examples/tkinter/messagebox/own-messagebox