我希望的结果是有一个带有两个按钮的python窗口"显示信息" "退出"彼此相邻并拥有"显示信息"按钮在3个单独的行上显示我的姓名和地址 " Quit"然后停止该程序。点击。我几乎就在那里 - 文字全都在一条线上。
提前感谢。
# 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()
答案 0 :(得分:5)
在你已经定义了3行的行中没有按照你的想法行事...... Python会将这些字符串粉碎在一起,好像根本就没有返回(这就是你所看到的)。相反,试着把它放在那里:
def show_info(self):
lines = ['My Name', '123 Any Rd', 'Town Fl, 12345']
tkinter.messagebox.showinfo('Text', "\n".join(lines))
答案 1 :(得分:3)
看起来很简单,但对于这么几行,最优雅的解决方案就是用换行符(\n
)结束每一行:
def show_info(self):
tkinter.messagebox.showinfo('Text',
'My Name\n'
'123 Any Rd\n'
'Town Fl, 12345\n')
如果你有很多行(例如段落),你可以使用multi-line string:
def show_info(self):
tkinter.messagebox.showinfo('Text', '''\
My Name
123 Any Rd
Town Fl, 12345''')
答案 2 :(得分:1)
只需要在你的信息文本中添加一些换行符(\ n)即可。只是将它写在多行上并不能使它成为多行文本。
答案 3 :(得分:1)
在文字中添加\n
tkinter.messagebox.showinfo('Text','My Name\n123 Any Rd\nTown Fl, 12345')