Makey Makey frågesport motor (5 / 6 steg)
Steg 5: Qt frågesport programvaran
Jag skapade Quiz motorn med Qt Creator (community edition) som är ett snabbt och enkelt sätt att skapa C++ GUI-program i Windows, men fungerar även bra på Mac och Linux.
Koden i huvudsak sparar strängen av vinnaren i en gameWinner QString (så allas namn måste vara unikt). Så snart som ställs in, kan ingen annan användare kan skriva över det QString tills systemet återställs med mellanslagstangenten. Jag har bifogat en zip för all källkod, men bara så att du kan kasta en blick genom jag har tagit mainWindow huvud- och C++ källa filer nedan.
Det grafiska Gränssnittet är för närvarande mycket grundläggande, men jag avser att så småningom lägger till möjligheten för spelarens namn justeras och även bilden av vinnaren av rundan. En annan förbättring vore också att ha en runner up show, om vinnaren svarar på frågan felaktigt.
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
namnområdet Ui {
klass MainWindow;
}
klass MainWindow: offentlig QMainWindow
{
Q_OBJECT
offentlig:
explicita MainWindow (QWidget * förälder = 0);
~ MainWindow();
skyddad:
void keyPressEvent(QKeyEvent *event);
privat slots:
void on_reset_clicked();
privat:
UI::MainWindow * ui;
QString gameWinner;
};
#endif / / MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#define PLAYER1 "Dan"
#define spelare2 "Divya"
#define PLAYER3 "Diana"
#define PLAYER4 "Jack"
MainWindow::MainWindow(QWidget *parent):
QMainWindow(parent),
UI (nya Ui::MainWindow)
{
UI -> setupUi(this);
This -> setFocusPolicy(Qt::StrongFocus);
qDebug() << "Lanserar SpyClub frågesport motor";
gameWinner = "";
}
MainWindow::~MainWindow()
{
ta bort ui;
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{
om (((händelse -> key() == Qt::Key_Up) ||
(händelse -> key() == Qt::Key_Right) ||
(händelse -> key() == Qt::Key_Down) ||
(händelse -> key() == Qt::Key_Left)) & &
(gameWinner == ""))
gameWinner = "TBC";
Växla (händelse -> key())
{
fall Qt::Key_Up:
qDebug() << PLAYER1;
om (gameWinner == "TBC") gameWinner = PLAYER1;
bryta;
fall Qt::Key_Right:
qDebug() << spelare2;
om (gameWinner == "TBC") gameWinner = spelare2;
bryta;
fall Qt::Key_Down:
qDebug() << PLAYER3;
om (gameWinner == "TBC") gameWinner = PLAYER3;
bryta;
fall Qt::Key_Left:
qDebug() << PLAYER4;
om (gameWinner == "TBC") gameWinner = PLAYER4;
bryta;
fall Qt::Key_Space:
qDebug() << "Game Reset!";
gameWinner = "";
bryta;
}
om (gameWinner! = "") ui -> status -> setText(gameWinner);
annars ui -> status -> setText ("inga vinnare ännu...");
}
void MainWindow::on_reset_clicked()
{
qDebug() << "Game Reset!";
gameWinner = "";
UI -> status -> setText ("inga vinnare ännu...");
}