Окно с многострочным текстом внутри него (справка о Программе)
После перехода к меню "Справка", открывается окно, в котором должен быть многострочный текст, который содержит информацию о работе программы.
Но как в Tkinter сделать многострочный текст в окне?
Label не подходит. create_text тоже не подходит.
Весь движ происходит в функции func1().
from tkinter import *
from tkinter import messagebox as mb
WIDTH = 1000
HEIGHT = 700
H = 50
ROWS = 11
COLUMNS = 20
MAINCOLOR = "white"
FONT1 = "Verdana 10"
BACKGROUND_COLOR1 = "red"
FOREGROUND_COLOR = "yellow"
FONT2 = "Verdana 14"
BACKGROUND_COLOR2 = "white"
GAME_OVER = False
MISSION_COMPLETE = False
root = Tk()
root.title("Приложение")
root.geometry(f"{WIDTH}x{HEIGHT}+{root.winfo_screenwidth() // 2 - WIDTH // 2}+{root.winfo_screenheight() // 2 - HEIGHT // 2}")
root.resizable(False, False)
root["bg"] = MAINCOLOR
canvas = Canvas(root, width=H * COLUMNS, height=H * ROWS, bg=MAINCOLOR)
canvas.place(x=0, y=50)
for i in range(COLUMNS):
for j in range(ROWS):
canvas.create_rectangle((H * i, H * j), (H * i + H, H * j + H))
space = [0 for i in range(ROWS * COLUMNS)]
def func1():
win = Tk()
win.title("Справка")
win.geometry(f"{900}x{600}+{win.winfo_screenwidth() // 2 - 450}+
{win.winfo_screenheight() // 2 - 300}")
win.resizable(False, False)
c = Canvas(win, width=900, height=600, bg=MAINCOLOR)
c.pack()
text = Label(win, text="Работа программы проста.", font="Verdana 12")
text.pack()
main_menu = Menu(root, tearoff=0)
root.config(menu=main_menu)
help_menu = Menu(main_menu, tearoff=0)
help_menu.add_command(label="Справка", command=func1)
help_menu.add_command(label="О разработчике")
main_menu.add_cascade(label="О программе", menu=help_menu)
if __name__ == "__main__":
root.mainloop()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
tkinter.messagebox — Tkinter message prompts
Модуль
tkinter.messageboxпредоставляет базовый класс шаблона, а также множество удобных методов для часто используемых конфигураций.
Окна сообщений являются модальными ...
Как вариант:
from tkinter import *
from tkinter import messagebox as mb
WIDTH = 1000
HEIGHT = 700
H = 50
ROWS = 11
COLUMNS = 20
MAINCOLOR = "white"
FONT1 = "Verdana 10"
BACKGROUND_COLOR1 = "red"
FOREGROUND_COLOR = "yellow"
FONT2 = "Verdana 14"
BACKGROUND_COLOR2 = "white"
GAME_OVER = False
MISSION_COMPLETE = False
root = Tk()
root.title("Приложение")
root.geometry(f"{WIDTH}x{HEIGHT}+{root.winfo_screenwidth() // 2 - WIDTH // 2}+{root.winfo_screenheight() // 2 - HEIGHT // 2}")
root.resizable(False, False)
root["bg"] = MAINCOLOR
canvas = Canvas(root, width=H * COLUMNS, height=H * ROWS, bg=MAINCOLOR)
canvas.place(x=0, y=50)
for i in range(COLUMNS):
for j in range(ROWS):
canvas.create_rectangle((H * i, H * j), (H * i + H, H * j + H))
space = [0 for i in range(ROWS * COLUMNS)]
def func1():
win = Tk()
win.title("Справка")
win.geometry(f"{900}x{600}+{win.winfo_screenwidth() // 2 - 450}+ \
{win.winfo_screenheight() // 2 - 300}")
win.resizable(False, False)
c = Canvas(win, width=900, height=600, bg=MAINCOLOR)
c.pack()
text = Label(win, text="Работа программы проста.", font="Verdana 12")
text.pack()
# !!! +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def show_about_window():
CURRENT_VERSION = "1.0.9"
about_text = "Barcode Scanner\n\nVersion: {}\n\nDeveloped by: " \
"Sindre\n\nDescription: Enter a barcode to mark it as green in the Excel "\
"sheet.\n \n Note: Due to Windows Locking the Excel file when it is open, "\
"the program can't run with the file open.".format(CURRENT_VERSION)
mb.showinfo("About", about_text)
# !!! +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main_menu = Menu(root, tearoff=0)
root.config(menu=main_menu)
help_menu = Menu(main_menu, tearoff=0) # vvvvvvvvvvvvvvvvv # <----------------
help_menu.add_command(label="Справка", command=show_about_window) # command=func1
help_menu.add_command(label="О разработчике")
main_menu.add_cascade(label="О программе", menu=help_menu)
if __name__ == "__main__":
root.mainloop()

