У меня проблемы с размещением строки меню над Canvas wid git с помощью tkinter - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь добавить строку меню в виджет Canvas. В настоящее время я тестирую его, используя демонстрационный код, который я нашел в Интернете, прежде чем внедрить его в приложение, которое я пишу. В настоящее время код показывает окно, но строка меню появляется внизу страницы, а не вверху.

Кроме того, примечание: есть ли способ использовать функцию отдельно python файл для рисования фигуры без создания нового окна?

мой код:


import tkinter
from tkinter import *
from tkinter import messagebox

def option():
     print("Options")

top = Tk()
mb = Menubutton(top, text = "condiments", relief = RAISED)
C = Canvas(top, bg = "blue", height = 250, width = 250)
C.grid()
mb.grid()

mb.menu = Menu(mb, tearoff = 0)
mb["menu"] = mb.menu
mb.menu.add_command(label = "mayo", command = option)
mb.menu.add_command(label = "ketchup", command = option)

coord = 10,50.240, 210
coord1 = 10,50,20,60
arc = C.create_arc(coord, start = 0, extent = 150, fill = "red")
line = C.create_line(coord, fill = "white")
oval = C.create_oval(coord1, fill = "black")

top.mainloop()

1 Ответ

0 голосов
/ 04 февраля 2020

По умолчанию сетка будет автоматически увеличивать строку и столбец, если не указано иное. Вы также можете просто изменить порядок кода, чтобы значения по умолчанию совпали с вашими ожиданиями.

Дзен Python говорит, что «явное лучше, чем неявное». Если вы явно определите строку и столбец, код будет проще для понимания, и вы сможете разместить меню в любом месте.

mb.grid(row=0, column=0)
C.grid(row=1, column=0)
...