Stap 5: De Qt Quiz Software
Ik heb de motor Quiz met Qt-Creator (communitie editie) dat is een snelle en gemakkelijke manier voor het maken van C++ GUI toepassingen in Windows, maar werkt ook goed op Mac en Linux.
De code slaat in wezen de tekenreeks van de winnaar in een gameWinner QString (zodat iedereen de naam uniek zijn moet). Zodra die is ingesteld, kan geen andere gebruiker overschrijven dat QString tot het systeem opnieuw wordt ingesteld met de SPATIEBALK. Ik heb bijgevoegd een zip van de broncode, maar gewoon zodat u kunt bekijken door ik hebben opgenomen de bitrate kop- en C++-bronbestanden hieronder.
De GUI is momenteel erg basic, maar ik ben van plan om uiteindelijk toe te voegen de mogelijkheid voor de spelersnamen worden aangepast en ook de foto van de winnaar van die ronde. Een andere verbetering zou ook zijn om een runner-up Toon, in het geval dat de winnaar antwoord op de vraag verkeerd.
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void keyPressEvent(QKeyEvent *event); private slots: void on_reset_clicked(); private: Ui::MainWindow *ui; QString gameWinner; }; #endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include #define PLAYER1 "Dan" #define PLAYER2 "Divya" #define PLAYER3 "Diana" #define PLAYER4 "Jack" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->setFocusPolicy(Qt::StrongFocus); qDebug() << "Launching SpyClub Quiz Engine"; gameWinner = ""; } MainWindow::~MainWindow() { delete ui; } void MainWindow::keyPressEvent(QKeyEvent *event) { if(((event->key() == Qt::Key_Up) || (event->key() == Qt::Key_Right) || (event->key() == Qt::Key_Down) || (event->key() == Qt::Key_Left)) && (gameWinner == "")) gameWinner = "TBC"; switch(event->key()) { case Qt::Key_Up: qDebug() << PLAYER1; if(gameWinner == "TBC") gameWinner = PLAYER1; break; case Qt::Key_Right: qDebug() << PLAYER2; if(gameWinner == "TBC") gameWinner = PLAYER2; break; case Qt::Key_Down: qDebug() << PLAYER3; if(gameWinner == "TBC") gameWinner = PLAYER3; break; case Qt::Key_Left: qDebug() << PLAYER4; if(gameWinner == "TBC") gameWinner = PLAYER4; break; case Qt::Key_Space: qDebug() << "Game Reset!"; gameWinner = ""; break; } if(gameWinner != "") ui->status->setText(gameWinner); else ui->status->setText("No Winner Yet..."); } void MainWindow::on_reset_clicked() { qDebug() << "Game Reset!"; gameWinner = ""; ui->status->setText("No Winner Yet..."); }