Call an AppleScript from Qt/sq
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 <QApplication&gt;<br />#include <QProcess&gt;<br />#include <QDebug&gt;
int main(int argc, char **argv)<br />{<br /> QApplication a(argc, argv);
QString aScript =<br /> "tell application quot;System Eventsquot;"<br /> " activate\n&quot;<br /> " display dialog quot;Hello worldquot;"<br /> "end tell\n&quot;;
QString osascript = "/usr/bin/osascript&quot;;<br /> QStringList processArguments;<br /> processArguments << "-l&quot; << "AppleScript&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() << "the result of the script is&quot; << 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().