Я пытаюсь создать простой интерфейс в Python (2.7) с Tkinter с указанием окна ввода пользователя, кнопки обзора и описания в первой строке и многострочного объяснения охватывая их ширину на линии ниже.Tkinter - columnspan, похоже, не влияет на сообщение
Моя проблема заключается в том, что вариант columnspan
не кажется, чтобы мой Message
виджет, чтобы охватить ширину трех столбцов выше, как можно увидеть ниже:
Как я могу получить это Message
для охвата всей ширины? Я дополнительно пробовал использовать параметр width
, но это похоже на другой масштаб, чем для виджета Entry
.
Мой код выглядит следующим образом:
from Tkinter import *
class App(Frame):
def __init__(self, *args, **kwargs):
Frame.__init__(self, *args, **kwargs)
self.grid(sticky=N + W + E + S)
# set up labels and buttons
self.folder_text = Label(
self, text='Select Folder: ', font='Arial 10', anchor=W
)
self.folder_text.grid(row=0, column=0, sticky=W)
self.input_folder = Entry(
self, width=40, font='Arial 10'
)
self.input_folder.grid(row=0, column=1)
self.browse_button = Button(
self, text="Browse", font='Arial 8 bold',
command=lambda: self.browse_for_folder(self.input_folder)
)
self.browse_button.grid(row=0, column=2)
self.desc = Message(
self, text='This tool will create a .csv file in the specified folder containing the Time and '
'Latitude/Longitude (WGS84) for all TIFF, RAW and JPEG/JPG files contained in the '
'folder with this information available.', font='Arial 8', anchor=W
)
self.desc.grid(row=1, column=0, columnspan=3, sticky=E + W)
self.run_button = Button(
self, text="Run!", font='Arial 10 bold', fg='red',
command=lambda: self.run(self.input_folder)
)
self.run_button.grid(row=2, column=1)
# ---SNIP---
root = Tk()
root.bind('<Escape>', lambda e: root.destroy())
root.resizable(0, 0)
root.title('Get photo geolocations')
app = App(root)
root.mainloop()
@MichelTouw это [встроенный тип виджета] (http://effbot.org/tkinterbook/message.htm) – asongtoruin