Timerfunktion einbauen???
Timerfunktion einbauen???
Hallo,
ich bin noch echt neu was QT und überhaupt C++ angeht, daher benötige ich an dieser Stelle etwas Hilfe.
Ich bin grad dabei ein kleines Quiz zu erstellen, dabei muss ich, damit nach der Beantwortung einer Frage,
das Programm nicht gleich und sofort zur nächsten übergeht, einen Timer oder sowas einbauen. Korrigiert
mich wenn ich da falsch liege^^. Ich habe mich auch schon in einigen Foren umgesehen, Google hat mir die
Antwort auch nicht gebracht. Kann mir bitte jemand den Code für einen Timer oder sowas posten? Besten
Dank schon mal im vorras.
MFG
ich bin noch echt neu was QT und überhaupt C++ angeht, daher benötige ich an dieser Stelle etwas Hilfe.
Ich bin grad dabei ein kleines Quiz zu erstellen, dabei muss ich, damit nach der Beantwortung einer Frage,
das Programm nicht gleich und sofort zur nächsten übergeht, einen Timer oder sowas einbauen. Korrigiert
mich wenn ich da falsch liege^^. Ich habe mich auch schon in einigen Foren umgesehen, Google hat mir die
Antwort auch nicht gebracht. Kann mir bitte jemand den Code für einen Timer oder sowas posten? Besten
Dank schon mal im vorras.
MFG
Re: Timerfunktion einbauen???
http://qt-project.org/doc/qt-4.8/qtimer.html#details
Mit Beispielen
Ansonsten solltest vl genauer Beschreiben was du machen willst.
Mfg veeman
Mit Beispielen
Ansonsten solltest vl genauer Beschreiben was du machen willst.
Mfg veeman
Zuletzt geändert von veeman am 16. März 2013 01:33, insgesamt 1-mal geändert.
Re: Timerfunktion einbauen???
Hallo,
ja ich habe mich da glaube ich schon ein wenig undeutlich ausgedrückt, was ich suche ist nicht direkt eine
Timerfunktion, sondern sowas wie eine Wait-Funktion. So dass der Übergang zur nächsten Frage verzögert
wird.^^
MFG
ja ich habe mich da glaube ich schon ein wenig undeutlich ausgedrückt, was ich suche ist nicht direkt eine
Timerfunktion, sondern sowas wie eine Wait-Funktion. So dass der Übergang zur nächsten Frage verzögert
wird.^^
MFG
Re: Timerfunktion einbauen???
Wie Zeigst du die Frage an? In einem QLabel?
Wie wird die Antwort beantwortet? Über nen Button?
Oder Arbeitest du mit der Console?
Es gibt kein direkte wait Funktion, du kannst halt auf Benutzeringaben reagieren.
Mfg veeman
Wie wird die Antwort beantwortet? Über nen Button?
Oder Arbeitest du mit der Console?
Es gibt kein direkte wait Funktion, du kannst halt auf Benutzeringaben reagieren.
Mfg veeman
Re: Timerfunktion einbauen???
also ich seh schon, dass ich echt noch genauer meine Fragen stellen muss^^ daher hier mein Quellcode... hoffe es ist ok, dass ich ihn hier poste...
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
frage = 1;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_bestaetigen_clicked()
{
bool eins = ui->radioButton->isChecked();
bool zwei = ui->radioButton_2->isChecked();
bool drei = ui->radioButton_3->isChecked();
qDebug() << "radiobutton_1" + eins;
qDebug() << "radiobutton_2" + zwei;
qDebug() << "radiobutton_3" + drei;
if(eins == true && frage == 1) //Simpsons
{
ui->ergebnis->setText("richtig");
frage = 2;
frage_2();
qDebug() << frage;
}
else
{
ui->ergebnis->setText("falsch");
qDebug() << "sompsons falsch";
}
if (eins == true && frage == 2)
{
ui->ergebnis->setText("richtig"); //Periodensystem
frage = 3;
frage_3();
}
else
{
ui->ergebnis->setText("falsch");
qDebug() << "periodensystem";
}
}
void MainWindow::frage_2()
{
ui->frage->setText("Wie heisst die Tabelle, in der die Elemente aufgelistet sind?");
ui->radioButton->setText("Kochbuch");
ui->radioButton_2->setText("Bibel");
ui->radioButton_3->setText("Periodensystem");
}
void MainWindow::frage_3()
{
ui->frage->setText("Wieviele Episoden von Star Wars gibt es?");
ui->radioButton->setText("4");
ui->radioButton_2->setText("6");
ui->radioButton_3->setText("9");
}
void MainWindow::frage_4()
{
ui->frage->setText("Wieviele Episoden von den Simpsons gibt es?");
ui->radioButton->setText("40");
ui->radioButton_2->setText("125");
ui->radioButton_3->setText("15");
}
so sieht das bis jetzt aus... wie gesagt, stehe noch am Anfang und lerne erst noch
bin daher für jede Hilfe die ich bekommen kann sehr dankebar.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
frage = 1;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_bestaetigen_clicked()
{
bool eins = ui->radioButton->isChecked();
bool zwei = ui->radioButton_2->isChecked();
bool drei = ui->radioButton_3->isChecked();
qDebug() << "radiobutton_1" + eins;
qDebug() << "radiobutton_2" + zwei;
qDebug() << "radiobutton_3" + drei;
if(eins == true && frage == 1) //Simpsons
{
ui->ergebnis->setText("richtig");
frage = 2;
frage_2();
qDebug() << frage;
}
else
{
ui->ergebnis->setText("falsch");
qDebug() << "sompsons falsch";
}
if (eins == true && frage == 2)
{
ui->ergebnis->setText("richtig"); //Periodensystem
frage = 3;
frage_3();
}
else
{
ui->ergebnis->setText("falsch");
qDebug() << "periodensystem";
}
}
void MainWindow::frage_2()
{
ui->frage->setText("Wie heisst die Tabelle, in der die Elemente aufgelistet sind?");
ui->radioButton->setText("Kochbuch");
ui->radioButton_2->setText("Bibel");
ui->radioButton_3->setText("Periodensystem");
}
void MainWindow::frage_3()
{
ui->frage->setText("Wieviele Episoden von Star Wars gibt es?");
ui->radioButton->setText("4");
ui->radioButton_2->setText("6");
ui->radioButton_3->setText("9");
}
void MainWindow::frage_4()
{
ui->frage->setText("Wieviele Episoden von den Simpsons gibt es?");
ui->radioButton->setText("40");
ui->radioButton_2->setText("125");
ui->radioButton_3->setText("15");
}
so sieht das bis jetzt aus... wie gesagt, stehe noch am Anfang und lerne erst noch
bin daher für jede Hilfe die ich bekommen kann sehr dankebar.
Re: Timerfunktion einbauen???
Ergänzung: nehmt die Fragen und auch die Antworten nicht allzu ernst... sind einfach nur so dahin geschmiert, als Platzhalter sozusagen^^
Re: Timerfunktion einbauen???
Code ist immer gern gesehen, wenn allzu lang ist dann am besten kürzen und in einen CODE-Tag einbinden.
Jetzt versteh ich was du meinst. Geht auch mit dem oben erwähntem Timer, dein Grundgerüst ist perfekt und muss nicht allzu viel verändert werden.
Einfach deine Funktionen frag_X als slot im Header definieren und anschliessend kannst du mit dem folgendem Code Zeitversetzt die jeweilige Funktion aufrufen:
Mfg veeman
Jetzt versteh ich was du meinst. Geht auch mit dem oben erwähntem Timer, dein Grundgerüst ist perfekt und muss nicht allzu viel verändert werden.
Einfach deine Funktionen frag_X als slot im Header definieren und anschliessend kannst du mit dem folgendem Code Zeitversetzt die jeweilige Funktion aufrufen:
Code: Alles auswählen
...
ui->ergebnis->setText("richtig");
frage = 2;
QTimer::singleShot(5000, this, SLOT(frage_2())); // Funktion nach 5s Aufrufen
...
Re: Timerfunktion einbauen???
Danke für den Timer, das funktioniert richtig klasse, bei dem Code bisher hatte ich ein wenig Hilfe von einem
Freund^^.
hmm frag_x im header definieren? wie gesagt, bin noch anfänger^^
nun tut sich aber ein weiteres Problem auf. . . die Radiobuttons bleiben immer angewählt.
Soll heissen, der Button, den ich als letzes aktiviert habe, bleibt auch makiert wenn ich
schon bei der nächsten Frage bin...wie "löscht" man das?
Freund^^.
hmm frag_x im header definieren? wie gesagt, bin noch anfänger^^
nun tut sich aber ein weiteres Problem auf. . . die Radiobuttons bleiben immer angewählt.
Soll heissen, der Button, den ich als letzes aktiviert habe, bleibt auch makiert wenn ich
schon bei der nächsten Frage bin...wie "löscht" man das?
Re: Timerfunktion einbauen???
Wenn der Timer schon geht dann brauchst das nicht im Header (das ist eine gleichnahmige Datei wie die .cpp nur mit .h) zu ändern.
Den Auswahlstatus soltlest du mittel setChecked(bool) setzen können. Ggf. ist es Sinnvoll die Radiobuttons zu gruppieren.
Mfg veeman
Den Auswahlstatus soltlest du mittel setChecked(bool) setzen können. Ggf. ist es Sinnvoll die Radiobuttons zu gruppieren.
Mfg veeman
Re: Timerfunktion einbauen???
das mit dem bool eins = ui->radioButton->isChecked(); habe ich ja schon drin.
nur ist der Button immer noch makiert mit der vorherigen Antwort, das möchte ich
unterbinden. Wenn die nächste Frage gestellt wird, sollen alle Buttons wieder leer sein.
Das bekomme ich nicht, obwohl ich immer dachte, Google weiss alles, musste ich mich
in dieser Sache korrigieren^^
MFG
PS: und besten Dank, dass immer so schnelle und sehr hilfreiche Antworten kommen!!!
nur ist der Button immer noch makiert mit der vorherigen Antwort, das möchte ich
unterbinden. Wenn die nächste Frage gestellt wird, sollen alle Buttons wieder leer sein.
Das bekomme ich nicht, obwohl ich immer dachte, Google weiss alles, musste ich mich
in dieser Sache korrigieren^^
MFG
PS: und besten Dank, dass immer so schnelle und sehr hilfreiche Antworten kommen!!!
Re: Timerfunktion einbauen???
Ja das ist klar und mit setChecked (!=ischecked) kannst wieder deaktivieren:
mfg
Code: Alles auswählen
ui->radioButton->setChecked(false)
Re: Timerfunktion einbauen???
leider muss ich da nochmal nachfragen, wie baue ich diese code genau in meinen ein?
habe etwas rumprobiert, klappt aber leider nicht.
MFG
habe etwas rumprobiert, klappt aber leider nicht.
MFG
Re: Timerfunktion einbauen???
Naja genauso wie du den text änders deaktivierst du die Radiobuttons auch.
mfg
Code: Alles auswählen
ui->radioButton->setChecked(false);
ui->radioButton_2->setChecked(false);
ui->radioButton_3->setChecked(false);
Re: Timerfunktion einbauen???
Ersetze ich denn die zeilen
bool eins = ui->radioButton->isChecked();
bool zwei = ui->radioButton_2->isChecked();
bool drei = ui->radioButton_3->isChecked();
durch die mit false?
mr isr manchmal nicht so ganz klar, an welche stelle ich was einfügen muss^^
MFG
bool eins = ui->radioButton->isChecked();
bool zwei = ui->radioButton_2->isChecked();
bool drei = ui->radioButton_3->isChecked();
durch die mit false?
mr isr manchmal nicht so ganz klar, an welche stelle ich was einfügen muss^^
MFG
Re: Timerfunktion einbauen???
Nein du sollst es nicht ersetzen.
Du kannst den Code zb. nach den Zuweisungen machen.
Ich empfehle dir Dringend die Basics anzuschauen. Zb:C von A bis Z
Was ist ein bool, was ist ein int, was ist eine Funktion und wie ist diese Aufgebaut ...
mfg
Du kannst den Code zb. nach den Zuweisungen machen.
Code: Alles auswählen
// auswahl einlesen
bool eins = ui->radioButton->isChecked();
bool zwei = ui->radioButton_2->isChecked();
bool drei = ui->radioButton_3->isChecked();
// auswahl löschen
ui->radioButton->setChecked(false);
ui->radioButton_2->setChecked(false);
ui->radioButton_3->setChecked(false);
if(eins == true && frage == 1) //Simpsons
....
Was ist ein bool, was ist ein int, was ist eine Funktion und wie ist diese Aufgebaut ...
mfg