Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
QtScript testen und Hilfe bei SQLite
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2616
Location: Konradsreuth (Germany)

PostPosted: Tue Jun 30, 2009 12:00 pm    Post subject: QtScript testen und Hilfe bei SQLite Reply with quote

Hallo :-)

Ich hab mal ein nettes kleines Script für Amarok 1.4 geschrieben, was alle gehörten Lieder in eine Datenbank packt. Dazu hab ich Python benutzt. Jetzt kann man ja in Amarok 2 Scripts nur noch in QtScript (als Java-/ECMA-Script) schreiben. So ein kleines Bißchen Ahnung hab ich davon schon, ich hab’s zumindest mal hinbekommen, daß das Script mittlerweile weiß, was und wann zu loggen wäre. Die Daten sind also schon da, aber ich hab leider keine Ahnung, wie ich sie in eine SQLite-Datenbank bekomme, weil dazu muß man ja wieder die Qt-Klassen benutzen …

Zunächst mal: gibt’s ne Möglichkeit, QtScript auf der Konsole mit einem Interpreter auszuführen, damit man einfach zum Ausprobieren irgendwas auf stdout schreiben kann? Und wo bekomm ich Dokumentation her? Da muß man doch dann irgendwie mit Importer.loadQtBinding() arbeiten, um an die Qt-Klassen ranzukommen, oder?

Also wenn sich da einer von euch auskennt, wäre mir mit einem Codeschnipsel, der eine SQLite-Datenbank aufmacht (die Datei erstellt, falls noch nicht vorhanden), was reinschreibt und was rausholt ganz extrem geholfen!

MfG
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5327

PostPosted: Tue Jun 30, 2009 12:40 pm    Post subject: Reply with quote

eventuell hilft dir das weiter: http://amarok.kde.org/wiki/Development/Scripting_HowTo_2.0#Amarok_Script_Console
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2616
Location: Konradsreuth (Germany)

PostPosted: Tue Jun 30, 2009 1:56 pm    Post subject: Reply with quote

Hab ich schon gelesen, das ist aber irgendwie nicht so recht das Gelbe vom Ei ...
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Tue Jun 30, 2009 7:44 pm    Post subject: Reply with quote

Schau dich mal in /usr/share/apps/amarok/scripts/ um (z.B. lyrics_lyricwiki).
Laden von SQL mit
Code:
Importer.loadQtBinding( "qt.sql" );

Und einige Beispiele findest du auch noch in den examples mit qtscriptgenerator.

Sollte es nicht helfen, schreib einfach konkret, welche Probleme noch bestehen. (Z.B. wie instanziier ich mein QSqlDatabase-Objekt mit QtScript)

Grüße
Franz
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2616
Location: Konradsreuth (Germany)

PostPosted: Tue Jun 30, 2009 8:04 pm    Post subject: Reply with quote

Danke für die Hilfe! Aber leider benutzt weder eines der Scripts, die Amarok mitbringt, noch die Beispiele von qtscriptgenerator SQLite (oder überhaupt SQL) … und wie gesagt, ich hab leider bisher überhaupt keine Ahnung von Qt, da wär’s schon super, wenn ich mir ein paar Codeschnipsel aus einem Script klauen könnte, das mit SQLite kommuniziert ;-)

Daß ich die Qt-Klasse, die ich brauchen werde mit
Code:
Importer.loadQtBinding("qt.sql");

hole, hab ich schon rausgefunden. Aber das war’s dann auch schon … offen bleibt dann noch: wie krieg ich eine Verbindung mit einer SQLite-Datenbank und wie bekomm ich Daten da rein und raus?!

Gibt’s denn da keine Beispiele von Qt, so wie bei Python? Die ersten paar Codeschnipsel auf Qt-Script würden mir ja schon reichen!
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Wed Jul 01, 2009 7:54 am    Post subject: Reply with quote

Die Doku zu qtscriptgenerator ist wirklich etwas dürftig. Drum hab ich dir auch den Tip mit den examples gegeben :P
Und aus dem Code wie du Widgets erstellst, Labels mit Text versiehst usw. hab ich gedacht findet man auch raus wie man ne Datenbankverbindung öffnet. ;)

Aber wurscht, es gibt in qtscriptgenerator-src/qtbindings/qs_eval ein Tool, welchem du ein Script übergeben kannst. (bauen mit qmake && make im Verzeichnis) Das wird dann ausgeführt.
So kannst du außerhalb von amarok mal mit QtScripts experimentieren.
Ich werd mir auch mal konkret anschauen, wie man mit qtscript.sql arbeitet.

Bis denne viel Erfolg
Franz

// edit:
Ok, hier ein funktionierendes Beispiel:
Code:
var dbPath = "/home/franz/src/qtscriptgenerator/qtscriptgenerator/examples/test.db";
var db = QSqlDatabase.addDatabase("QSQLITE", "");
db.setDatabaseName(dbPath);
db.open();
var query = new QSqlQuery(db);
query.exec("INSERT INTO tbl (name) VALUES ('Peter')");


Code:
sqlite3 test.db
sqlite> .schema
CREATE TABLE tbl (id INTEGER PRIMARY KEY, name TEXT);


// edit2:
Wenn du in qs_eval/main.cpp in Zeile 132 diesen Abschnitt auskommentierst
Code:
if (!dir.cd("plugins")) {
        fprintf(stderr, "plugins folder does not exist -- did you build the bindings?\n");
        return(-1);
}

kannst du das qs_eval-executable irgendwo in deinem PATH unterbringen, was deutlich praktischer ist.
Falls ein Fehler im Script ist, öffnet qs_eval einen QtScript Debugger :) Ist leider "nur" eine Qt-Klasse und kein eigenes executable :/ Aber hauptsache überhaupt!
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2616
Location: Konradsreuth (Germany)

PostPosted: Wed Jul 01, 2009 7:32 pm    Post subject: Reply with quote

Danke, hat geholfen :-) Langsam blick ich auch durch, wie das alles so insgesamt funktioniert. Die Rohversion vom Amarok-2-Port von logger ist schonmal fertig, jetzt muß ich bloß mal noch bißchen testen!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum