Почему этот простой учебный скрипт Tkinter отлично работает на Raspberry Pi, но не на MacOS? - PullRequest
0 голосов
/ 09 июня 2018

Ниже приведен небольшой скрипт на python3 из веб-учебника, демонстрирующий, как создавать раскрывающиеся меню с помощью Tkinter.

Копируется напрямую из https://www.tutorialspoint.com/python3/tk_menu.htm без изменений!

  • Работает нормально, когда я запускаю его на Raspberry Pi (с использованием 3 разных IDE)
  • НО, когда я запускаю его на своем Mac (в 2 разных IDE), он просто создает белое окно и не помещает в него никаких элементов меню.

  • ОБРАТИТЕ ВНИМАНИЕ, что этот Mac может запускать другие простые скрипты Tkinter, которые я создавал, пытаясь изучить Tkinter ... делая кнопки, всплывающие окна, без проблем.

Новое редактирование: когда я прихожу к максу, на котором происходит сбой, и я делаю:

    >>> import tkinter
    >>> tkinter._test()

... тест отлично работает с его небольшимкнопки и т. д., и я получаю маленькое окошко, сообщающее мне, что это v8.5.

Что это за сценарий, который делает удушение mac (а другой компьютер - нет)?Огромное спасибо!

Вот скрипт tkinter, который не работает на macs:

# !/usr/bin/python3
from tkinter import *
def donothing():
   filewin = Toplevel(root)
   button = Button(filewin, text="Do nothing button")
   button.pack()

root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff = 0)
filemenu.add_command(label="New", command = donothing)
filemenu.add_command(label = "Open", command = donothing)
filemenu.add_command(label = "Save", command = donothing)
filemenu.add_command(label = "Save as...", command = donothing)
filemenu.add_command(label = "Close", command = donothing)

filemenu.add_separator()

filemenu.add_command(label = "Exit", command = root.quit)
menubar.add_cascade(label = "File", menu = filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label = "Undo", command = donothing)

editmenu.add_separator()

editmenu.add_command(label = "Cut", command = donothing)
editmenu.add_command(label = "Copy", command = donothing)
editmenu.add_command(label = "Paste", command = donothing)
editmenu.add_command(label = "Delete", command = donothing)
editmenu.add_command(label = "Select All", command = donothing)

menubar.add_cascade(label = "Edit", menu = editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label = "Help Index", command = donothing)
helpmenu.add_command(label = "About...", command = donothing)
menubar.add_cascade(label = "Help", menu = helpmenu)

root.config(menu = menubar)
root.mainloop()

1 Ответ

0 голосов
/ 10 июня 2018

НО, когда я запускаю его на своем Mac (в 2 разных IDE), он просто создает белое окно и не помещает в него никаких элементов меню.

Отлично, работает отлично!

Само окно не там, где идут меню на Mac - посмотрите на верхнюю часть экрана, как и на любое другое приложение Mac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...