Call an AppleScript from Qt/sq

From Qt Wiki
< Call an AppleScript from Qt
Revision as of 07:42, 24 February 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

Nëse dëshironi që të bëni thirrje të AppleScript komandave nga Qt mund ta përdorni këtë pjesë të kodit që është më poshtë.

<br />#include &lt;QApplication&amp;gt;<br />#include &lt;QProcess&amp;gt;<br />#include &lt;QDebug&amp;gt;

int main(int argc, char **argv)<br />{<br /> QApplication a(argc, argv);

QString aScript =<br /> &quot;tell application quot;System Eventsquot;&quot;<br /> &quot; activate\n&amp;quot;<br /> &quot; display dialog quot;Hello worldquot;&quot;<br /> &quot;end tell\n&amp;quot;;

QString osascript = &quot;/usr/bin/osascript&amp;quot;;<br /> QStringList processArguments;<br /> processArguments &lt;&lt; &quot;-l&amp;quot; &lt;&lt; &quot;AppleScript&amp;quot;;

QProcess p;<br /> p.start(osascript, processArguments);<br /> p.write(aScript.toUtf8());<br /> p.closeWriteChannel();<br /> p.waitForReadyRead(1);<br /> QByteArray result = p.readAll();<br /> QString resultAsString(result); // if appropriate<br /> qDebug() &lt;&lt; &quot;the result of the script is&amp;quot; &lt;&lt; resultAsString;

return 0;<br />}<br />

It holds the actual script in variable aScript. Then creates a QProcess for invoking the AppleScript command line tool osascript.

Kodi më lartë përmban apple skriptën në variablën e quajtur aScript. Pastaj krijon një instancë të QProcess për të bërë thirrjen e komandës të AppleScript i cili quhet osascript.

The arguments call osascript with -l AppleScript, so that the it needs not to guess the script language.

Argumenti -l në osascript përdoret që të mos mundohet të kuptojë se për cilën gjuhë skriptuese bëhet fjalë.

The script is then fed to osascript via stdin.

Pastaj skriptës i shtohen të dhënat nga hyrja standarde (stdin).

Programi pret për të dhëna nga dalja e skriptës dhe më pas ne lexojmë daljen nga skripta.

If there are bytes available, the program reads them and converts them to a QString (if that is ok for the expected data!). In a real world program on should connect to the various readyReadXXX() signals and connect a slot to it to collect the data.

Nëse ka byte që kanë ardhur nga ekzekutimi, programi jonë i lexon ato dhe i shëndron në QString (kjo duhet të ndodhë vetëm nëse presim string nga skripta). Zakonisht programi duhet të lidhë slot-ët në disa signale p.sh readyRead().