[gelöst]PushButton in einer Schleife!

Verschiedenes zu Qt
Antworten
dingle
Beiträge: 3
Registriert: 6. September 2010 13:29

[gelöst]PushButton in einer Schleife!

Beitrag von dingle »

Hi Qt-Forum,

ich bin neu aber das Forum kenn ich schon etwas länger durch google ;-].
Ich Programmiere für mein Nokia XM 5800 ein kleines Spiel.

Das GUI passt schon ganz gut darauf, allerdings möchte ich nun den Kern des Spiels Programmieren.

Dieses Spiel besteht aus 27 Buttons. Dabei gibt es ein Button, bei dem eine Schleife von 0 bis 10 durchläuft, nun soll das Programm
währrend dieser Schleife warten bis ein neuer Button angeklickt wird, wenn dieser Button angeklickt wird, dann läuft die Schleife weiter, bis am ende 10 klicks durchgelaufen sind.

Ich hab die Api von Qt durchgeschaut und nicht wirklich hilfreiches gefunden und google hat da auch den Geist aufgegeben.

Die Suche hier hat auch nichts gebracht( vielleicht habe ich einfach falsche Stichwörter genutzt :D )

Ich hoffe es hat jemand von euch eine Lösung.

MfG

dingle

und habt nachsehen mit der Rechtschreibung, die ist bei mir nicht immer perfekt :P
Zuletzt geändert von dingle am 9. September 2010 10:52, insgesamt 1-mal geändert.
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

hallo erstmal,
also ich verstehe dein problem noch nicht so recht. so wie ich es jetzt verstanden habe, willst du 27 buttons, die in einer bestimmten reihenfolge angeklickt werden, allerdings weiß ich nicht so recht, warum du eine schleife brauchst?

Mfg androphinx
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Beschäftige dich mal mit State-Maschines im Allgemeinen, anschließend kannst du entweder die Qt verwenden, oder selbst eine bauen. Aber vergiß Schleifen, so wie du sie verwenden willst!
dingle
Beiträge: 3
Registriert: 6. September 2010 13:29

Beitrag von dingle »

Hi,
also der Tipp mit den Automaten war echt nicht schlecht, allerdings hab ich immernoch das problem, dass währrend der Prozedur nicht gewartet wird bis der korrekte Button geklickt wurde...

Vielleicht nochmal als Hinweis:

Es gibt einen Start Button, mit diesem Button läutet man eine Stoppuhr ein, nun muss man die Korrekten Buttons (Zahlen von 1-10 z.B.) anklicken.

Ich starte sozusagen den timer,
dann soll das Programm auf einen klick warten,
dieser klick wird dann überprüft ob das der richtige ist,
dies geht solange bis man entweder den Falschen button angeklickt hat
oder alle Buttons in der richtigen Reihenfolge abgearbeitet hat.
der timer stoppt.

Hab dafür keine passende Klasse/Methode gefunden. Mit QStateMachine hat es nicht wirklich geklappt. ;)

Vielleicht wurde es nun etwas Verständlicher, ich hab so meine Probleme mich auszudrücken :D

MfG
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Klingt nach einer lustigen Fingerübung am Morgen.
Sagen wir 3 Tasten, "1 2 3". Und man muss drücken "1 3 2" innerhalb von 10sec.
Wenn nicht gibts das große rote "ACCESS DENIED" Symbol hehe

Wart mal, ich versuchs mal..
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Ist zwar nicht schön geworden, hat aber Spass gemacht. Nur das mit dem Timer ist doof geworden. hf
Dateianhänge
pushButton.zip
(5.14 KiB) 189-mal heruntergeladen
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

Jep, so hätte ich es auch gemacht... Einfach und simpel...

wobei mir bestimmt was besseres eingefallen wäre als "mirfaelltnixein" xD

Mfg androphinx

EDIT: Ok, nicht ganz, ich hätte den Nutzer erst alle drei Zeichen eingeben lassen, bevor ich ihm verrate, ob er richtig oder falsch eingegeben hat, ansonsten hat man per ausschlussverfahren ruckzuck die kombination raus.... zumindest bei dieser sache jetzt....
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Wer sagt, dass es drei Zeichen sind ;)
Mit etwas mehr Aufwand kann man ganze Wortfetzen statt nur Buchstabend nehmen.
E-le-phant oder so. Und dann mischen und auf die Buttons setzten.
Wär eigentlich ein Lustiges Spiel. Wörter zusammensetzten.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Code: Alles auswählen

  // Irgendeine Statusvariable die anzeigt ob der Code richtig oder falsch
    // eingegeben wurde, um damit den Timer zu unterbrechen.
    // Ich weiss leider nicht wie man ein singleShot Timer stoppen kann
    blubb = false;
Dann nimm doch einfach ein QTimer... und "blubb" wäre bei meiner "Prüfung-für-sinnvolle-Variabelnbezeichner" eindeutig durchgefallen.. :wink:

Code: Alles auswählen

void MainWindow::on_pushButton_clicked()
{
    doTheMagic('1');
}

void MainWindow::on_pushButton_2_clicked()
{
    doTheMagic('2');
}

void MainWindow::on_pushButton_3_clicked()
{
    doTheMagic('3');
}
Das schreit nach einem QSignalMapper...

hth..
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Warum lange über ein Variablennamen nachdenken, wenn die Variable eh beim nächstenmal rausfliegt.

QSignalMapper kenn ich nicht. Mal ansehen.
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

Ja da ist was wahres dran. Hab lange keinen Signal-Mapper mehr gebraucht, wie schnell man sowas doch vergisst :oops:

http://doc.qt.nokia.com/4.7-snapshot/qsignalmapper.html

Mfg androphinx
dingle
Beiträge: 3
Registriert: 6. September 2010 13:29

Beitrag von dingle »

Mh sieht schonmal nett aus dieser Code, werd ich dann morgen näher analysieren und versuchen auf mein Programm zu umschreiben ;)

Ich danke schonmal für die Mühe :)

MfG

EDIT:: War echt super vorlage, funktioniert nun super bei mir ;). Ich danke für die mühe ;)
Antworten