В настоящее время работаю через бесплатный онлайн-класс для Python от Cybrary (я пишу в 3.6), но я использую Mac, в то время как ведущий использует Windows.До сих пор было очень мало различий, если таковые имеются.
В настоящем разделе, однако, рассматривается изучение и использование Ctypes, а «назначение» говорит: Write a function which takes two arguments, title and body and creates a MessageBox with those arguments
.
Код, используемый ввидео в качестве примера создания окна сообщения:
from ctypes import *
windll.user32.MessageBoxA(0, "Click Yes or No\n", "This is a title\n", 4)
Мой код:
# 2.1 Ctypes: Write a function which takes two arguments, title and body
# and creates a MessageBox with those arguments
def python_message_box(title, body):
return windll.user32.MessageBoxA(0, body, title, 0)
Запуск этого дает ошибку:
File ".../AdvancedActivities.py", line 9, in python_message_box
return windll.user32.MessageBoxA(0, body, title, 0)
NameError: name 'windll' is not defined
Не думаю, что мне нужно говорить, что я получаю ту же ошибку, пытаясь запустить
windll.user32.MessageBoxW(0, body, title, 0)
Я не смог найти нигде примеров людей, создающих Ящики сообщений на компьютерах Mac.Это специфичная для Windows функция?Если это так, что будет эквивалентно этому в Mac?
РЕДАКТИРОВАТЬ: решение Марка Сетчелла состоит в том, чтобы Python выполнял терминальные функции, выполняющие задачи windll
, поэтому вместо windll.user32.MessageBoxA(0, body, title, 0)
используйте:
command = "osascript -e 'Tell application \"System Events\" to
display dialog \""+body+"\"'"
system(command)