Call an AppleScript from Qt/ru

From Qt Wiki
< Call an AppleScript from Qt
Revision as of 14:18, 14 January 2015 by Maintenance script (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

English | Русский | Italiano | Español | Shqip

Запуск AppleScript из Qt

Если вы хотите вызвать команды AppleScript в Qt, вы можете использовать следующий пример кода, как отправную точку.

В переменной aScript находться скрипт, который мы хотим выполнить. Затем создается QProcess для вызова osascript – консольного интерпретатора AppleScript’а.

osascript с аргументом “-l AppleScript”, чтобы явно указать язык и отключить автоматическое определение.

Скрипт передается в osascript через стандартный ввод.

Прогамма ждет каких-нибудь выходных данных из скрипта. Мы организуем чтения вывода из скрипта, следовательно используем waitForReadyRead.

Если байты для чтения доступны, программа читает их и конвертирует в QString (если подходящий тип для ожидаемых данных!). В реальности программа должна использовать подключения различных readyReadXXX() сигналов и связывать их с слотами для сбора данных.

Если вам не нужды выходные данные скрипта, просто вызовите waitForFinished() сразу после closeWriteChannel(). Программа будет ждать пока ваш скрипт закончит выполняться, иначе поток управления пойдет до конца и преждевременно завершит скрипт.

Categories: