Muchikamu chechipiri ichi tichavaka pfungwa yekushandisa (kuona nekuongorora kodhi iri nani kuitarisa zvizere kuti ndichaiisa pazasi pepositi), asi zvisati zvaitika tichafanira kuisa raibhurari ye sqlite3 iyo yatichazoshandisa kuti tikwanise kusevha mibvunzo nemhinduro dzadzo dzakasiyana:
sudo apt-get install libsqlite3-dev
Kana maraibhurari aiswa isu tinongoda chete "kushandisa Sqlite;" kukwanisa kushandisa sqlite mu vala.
Tichada kugadzira Tafura ine:
Mubvunzo
Pindura 1
Pindura 2
Pindura 3
Pindura 4
rakarurama
muenzaniso:
Mubvunzo = ndizvo desdelinux blog yakanaka?
Mhinduro1 = iyo blog haipo
Mhinduro2 = kwete
Mhinduro3 = hongu
Mhinduro4 = mhoro
sezvo isu tese tichiziva mhinduro kwayo ndeye 2 (yakanaka ndeye 3)
chaiyo = 3
Kugadzira tafura uye kuibata isu tinofanirwa kuziva sql (unogona kuitsvaga muinjini yako yekutsvaga), chirevo chekugadzira tafura:
CREATE TABLE preguntas (pregunta TEXT, respuesta1 TEXT, respuesta2 TEXT, respuesta3 TEXT, respuesta4 TEXT, correcto INT);
Isa mibvunzo…:
PINDA MUmibvunzo (mubvunzo, mhinduro1, mhinduro2, mhinduro3, mhinduro4, yakarurama) ZVINOKOSHA ('s desdelinux bhurogi rakanaka', 'haisi bhurogi', 'kwete', 'hongu', 'mhoro', 3);
Ok ikozvino tora mubvunzo (wakarongedzwa zvisina kurongeka):
SELECT pregunta, respuesta1, respuesta2, respuesta3, respuesta4, correcto FROM preguntas ORDER BY RANDOM()
Kuvhura iyo database:
int ec = Sqlite.Database.open ("test.db", out db);
if (ec != Sqlite.OK) {
stderr.printf ("Can't open database: %d: %s\n", db.errcode (), db.errmsg ());
}
Kana isu tisina iyo yakatogadzirwa kare (kekutanga kumhanyisa kodhi yacho) inozozvigadzira
Gadzira tafura uye isa mibvunzo:
yakavanzika void bd() {tambo errmsg; // Vhura dhatabhesi / Gadzira dhatabhesi int ec = Sqlite.Database.open("test.db", kunze db); kana (ec != Sqlite.OK) { stderr.printf ("Haikwanisi kuvhura dhatabhesi: %d: %s\n", db.errcode (), db.errmsg ()); } kana (!FileUtils.test ("test.db", FileTest.IS_REGULAR)) {string query = """ GADZIRA mibvunzo yeTABLE ( mubvunzo TEXT, mhinduro1 TEXT, mhinduro2 TEXT, mhinduro3 TEXT, mhinduro4 TEXT, yakarurama INT ); INSERT KUPINDA mibvunzo (mubvunzo, mhinduro1, mhinduro2, mhinduro3, mhinduro4, yakarurama) ZVINOKOSHA ('ndizvo desdelinux bhurogi rakanaka', 'haisi bhurogi', 'kwete', 'hongu', 'mhoro', 3); PINDA MUmibvunzo (mubvunzo, mhinduro1, mhinduro2, mhinduro3, mhinduro4, yakarurama) ZVINOKOSHA ('5+5', '25', '10', '3', '5', 2); """; ec = db.exec (mubvunzo, null, kunze errmsg); kana (ec != Sqlite.OK) {stderr.printf ("Error: %s\n", errmsg); }}}
Tarisa uone kuti hapana kukanganisa:
kana (ec! = Sqlite.OK) {stderr.printf ("Kanganiso:% s \ n", errmsg); dzoka -1; }
Isu tichagadzira tambo nhanhatu dzinozotibatsira isu kuita kupihwa kwemibvunzo nemhinduro.
tambo yakasarudzika p; yakasarudzika tambo r1; yakasarudzika tambo r2; yakasarudzika tambo r3; yakasarudzika tambo r4; tambo yakasarudzika c;
Kuisa mubvunzo (watinowana kubva ku test.db) ne SELECT:
private void bd_select_questions () {string query = "Sarudza mubvunzo, mhinduro1, mhinduro2, mhinduro3, pindura4, pindura2, gadzirisa KUBVA kumibvunzo KUTAURA NERANDOM ()"; int rc = db.prepare_v1 (mubvunzo, -0, kunze stmt, null); int cols = stmt.column_count (); rc = stmt.step (); int col; kana (rc == Sqlite.ROW) {ye (col = 0; col <cols; col ++) {txt txt = stmt.column_text (col); kana (col == 1) {p = txt; } zvimwe kana (col == 1) {r2 = txt; } zvimwe kana (col == 2) {r3 = txt; } zvimwe kana (col == 3) {r4 = txt; } zvimwe kana (col == 4) {rXNUMX = txt; } zvimwe {c = txt; } // kudhinda ("% s =% s \ n", stmt.column_name (col), txt); }}}
Isa mubvunzo kumifananidzo yakajeka:
private void next_pregunta () {
this.pregunta.set_label(this.p);
this.resposta1.set_label(this.r1);
this.resposta2.set_label(this.r2);
this.resposta3.set_label(this.r3);
this.resposta4.set_label(this.r4);
}
Rate:
private void puntua () {
this.punts = this.punts + 50;
this.puntos.set_label(this.punts.to_string());
}
Edza kana mhinduro iri yechokwadi:
private void correcto (string cor) {
if (this.c == cor) {
this.puntua ();
this.bd_select_preguntas ();
this.next_pregunta();
}
else{
//incorrecto
}
}
resposta1.clicked.connect (() => {
this.correcto("1");
});
resposta2.clicked.connect (() => {
this.correcto("2");
});
resposta3.clicked.connect (() => {
this.correcto("3");
});
resposta4.clicked.connect (() => {
this.correcto("4");
});
Nguva yekufunga, sezvatakaona mune yapfuura posvo, isu tinongofanirwa kuwedzera iyo if inosimbisa kuti iyo nguva kana yasvika 1 tinopa mhinduro seisiriyo:
Unganidza (tinowedzera -pkg sqlite3)
valac -v lol.vala --pkg gtk+-3.0 --pkg sqlite3
Kugadzira matatu mabhatani (50%, Gadzira, Pfuura):
Isu tinogadzira Gbox nyowani yakatwasuka uye tinowedzera mabhatani matatu mairi, tinowedzera iyi Gbox kune iyo yatakatogadzira.
this.box2 = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0);
var button1 = new Gtk.Button.with_label ("50%");
var button2 = new Gtk.Button.with_label ("congelar");
var button3 = new Gtk.Button.with_label ("passar");
this.box2.pack_start(button1);
this.box2.pack_start(button2);
this.box2.pack_start(button3);
Yakazara kodhi http://paste.desdelinux.net/4882
Ndatenda kwazvo nedzidziso, inonakidza kwazvo kwatiri isu vanoda kutanga nechinhu chakareruka, ini ndaizoda rumwe rubatsiro nechikamu chekugadzira matafura edata. Mufaro
Kugona chose! Zvakanyatsotsanangurwa uye zvakadzama. Kutenda neiyo data. (uye)
Thanks murume! Inonakidza kwazvo sekutanga.
Zvingave zvakanaka kuona akasiyana akasiyana mamiriro, nyora makomendi (iwo mhando pop ups) kana mamenu (nyora iwo emapaneru anowanikwa mune yekutanga kana gnome-shell) ...
Chokwadi, zvakanaka kwazvo.
Tinoverenga: =)