Paso 5: El Software de prueba de Qt
He creado el motor de prueba con Qt Creator (edición de comunidad) que es una manera fácil y rápida de crear aplicaciones C++ GUI en Windows, pero también funciona bien en Mac y Linux.
El código guarda esencialmente la cadena del ganador en un gameWinner QString (así que de todos el nombre debe ser único). En cuanto que se establece, ningún otro usuario puede sobrescribir QString hasta que el sistema se reinicie con la tecla espacio. He incluido un zip de todo el código fuente, pero solo para que usted puede echar un vistazo a través de he incluido la mainWindow encabezado y archivos de código fuente de C++ a continuación.
La GUI es actualmente muy básica, pero voy a agregar finalmente la posibilidad para los nombres del jugador para ajustarse y también incluir la foto del ganador de esa ronda. Otra mejora sería tener un corredor para mostrar, en caso de que el ganador responde a la pregunta incorrectamente.
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..."); }