Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Call an AppleScript from Qt/sq: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
m (AutoSpider moved page Call an AppleScript from Qt Albanian to Call an AppleScript from Qt/sq: Localisation)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Call_an_AppleScript_from_Qt|English]]<br />| [[Call_an_AppleScript_from_Qt_Russian|Русский]]<br />| [[Call_an_Apple_Script_from_Qt_Italian |Italiano]]<br />| [[Call_an_AppleScript_from_Qt_Spanish|Español]]<br />| '''Shqip'''<br />[[Category:HowTo]]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
 
[[Call_an_AppleScript_from_Qt|English]]
| [[Call_an_AppleScript_from_Qt_Russian|Русский]]
| [[Call_an_Apple_Script_from_Qt_Italian |Italiano]]
| [[Call_an_AppleScript_from_Qt_Spanish|Español]]
| '''Shqip'''
[[Category:HowTo]]


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ë.
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ë.


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


int main(int argc, char **argv)<br />{<br /> QApplication a(argc, argv);
int main(int argc, char **argv)
{
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 aScript =
"tell application quot;System Eventsquot;"
" activate\n"
" display dialog quot;Hello worldquot;"
"end tell\n";


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;;
QString osascript = "/usr/bin/osascript";
QStringList processArguments;
processArguments << "-l" << "AppleScript";


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;
QProcess p;
p.start(osascript, processArguments);
p.write(aScript.toUtf8());
p.closeWriteChannel();
p.waitForReadyRead(–1);
QByteArray result = p.readAll();
QString resultAsString(result); // if appropriate
qDebug() << "the result of the script is" << resultAsString;


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


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

Latest revision as of 15:58, 16 March 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

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ë.

#include <QApplication>
#include <QProcess>
#include <QDebug>

int main(int argc, char **argv)
{
 QApplication a(argc, argv);

QString aScript =
 "tell application quot;System Eventsquot;"
 " activate\n"
 " display dialog quot;Hello worldquot;"
 "end tell\n";

QString osascript = "/usr/bin/osascript";
 QStringList processArguments;
 processArguments << "-l" << "AppleScript";

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

return 0;
}

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().