需要显示为三行而不是一行
我想要的效果是有一个Python窗口,里面有两个按钮,一个是“显示信息”,另一个是“退出”,这两个按钮要并排放在一起。点击“显示信息”按钮时,能在三行上显示我的名字和地址,而当点击“退出”按钮时,程序就停止运行。我快做到这一点了,但现在文本都显示在一行上。
提前谢谢你。
# This program will demonstrate a button widget within a dialog box
# that shows my information.
# Call TK interface
import tkinter
# Call message box
import tkinter.messagebox
# Create class for GUI.
class MyGUI:
def __init__(self):
#Create the main window widget.
self.main_window = tkinter.Tk()
#Create button widget 1.
self.my_button = tkinter.Button(self.main_window, \
text='Show Info', \
command=self.show_info)
#Creat a quit button.
self.quit_button = tkinter.Button(self.main_window, \
text='Quit', \
command=self.main_window.destroy)
# Pack the buttons.
self.my_button.pack(side='left')
self.quit_button.pack(side='left')
#Enter the tkinter main loop.
tkinter.mainloop()
#The do_somethings will be defined.
def show_info(self):
tkinter.messagebox.showinfo('Text', \
'My Name'
'123 Any Rd'
'Town Fl, 12345')
my_gui = MyGUI()
4 个回答
1
在你的文本中添加\n
tkinter.messagebox.showinfo('Text','My Name\n123 Any Rd\nTown Fl, 12345')
1
只需要在你的信息文本中添加一些换行符(\n)。单纯把它写在多行上并不会让它变成多行文本。
5
这看起来可能很简单,但对于这么少的几行代码,最优雅的解决办法就是在每一行的结尾加上一个换行符(\n
):
def show_info(self):
tkinter.messagebox.showinfo('Text',
'My Name\n'
'123 Any Rd\n'
'Town Fl, 12345\n')
不过,如果你有很多行,比如一段话,你可以使用一个多行字符串:
def show_info(self):
tkinter.messagebox.showinfo('Text', '''\
My Name
123 Any Rd
Town Fl, 12345''')
7
你定义的那三行的换行符其实没起到你想要的效果……Python会把这些字符串连在一起,就好像根本没有换行一样(这就是你看到的情况)。相反,你可以试试在这里加上这个:
def show_info(self):
lines = ['My Name', '123 Any Rd', 'Town Fl, 12345']
tkinter.messagebox.showinfo('Text', "\n".join(lines))