Player area with croupier and player names.

This commit is contained in:
greek 2024-05-31 12:10:00 +01:00
commit 8307e4eec4
8 changed files with 292 additions and 0 deletions

33
CMakeLists.txt Normal file
View file

@ -0,0 +1,33 @@
cmake_minimum_required(VERSION 3.16)
project(roulette-payout VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 6.2 COMPONENTS Core Widgets QuickControls2 Gui REQUIRED)
qt_standard_project_setup()
qt_add_executable(roulette-payout
main.cpp
MainWindow.cpp
MainWindow.h
PlayerAreaModel.cpp
PlayerAreaModel.h
)
qt_add_qml_module(roulette-payout
URI roulette
VERSION 1.0
RESOURCE_PREFIX "/"
QML_FILES
Root.qml
PlayerAreaView.qml
)
target_link_libraries(roulette-payout PRIVATE
Qt6::Gui
Qt6::QuickControls2
Qt6::Quick)

16
MainWindow.cpp Normal file
View file

@ -0,0 +1,16 @@
#include <QQmlContext>
#include <QtGui/qwindow.h>
#include <cstddef>
#include <qqml.h>
#include <qquickview.h>
#include <qurl.h>
#include "MainWindow.h"
MainWindow::MainWindow(QWindow *parent)
{
QQuickView::setTitle("Roulette Payout");
setSource(QUrl("../Root.qml"));
}

15
MainWindow.h Normal file
View file

@ -0,0 +1,15 @@
#pragma once
#include <QQuickView>
#include <QtGui/qwindow.h>
class MainWindow : public QQuickView
{
Q_OBJECT
QML_ELEMENT
QML_SINGLETON /* ??? */
public:
explicit MainWindow(QWindow *parent = nullptr);
};

89
PlayerAreaModel.cpp Normal file
View file

@ -0,0 +1,89 @@
#include "PlayerAreaModel.h"
PlayerAreaModel::PlayerAreaModel(QObject *parent)
{
playerName1Text = "Click to edit";
playerName2Text = "Click to edit";
playerName3Text = "Click to edit";
playerName4Text = "Click to edit";
playerName5Text = "Click to edit";
playerName6Text = "Click to edit";
playerName7Text = "Click to edit";
}
QString PlayerAreaModel::playerName1()
{
return playerName1Text;
}
QString PlayerAreaModel::playerName2()
{
return playerName2Text;
}
QString PlayerAreaModel::playerName3()
{
return playerName3Text;
}
QString PlayerAreaModel::playerName4()
{
return playerName4Text;
}
QString PlayerAreaModel::playerName5()
{
return playerName5Text;
}
QString PlayerAreaModel::playerName6()
{
return playerName6Text;
}
QString PlayerAreaModel::playerName7()
{
return playerName7Text;
}
void PlayerAreaModel::setPlayerName1(QString s)
{
playerName1Text = s;
emit playerName1Changed();
}
void PlayerAreaModel::setPlayerName2(QString s)
{
playerName2Text = s;
emit playerName2Changed();
}
void PlayerAreaModel::setPlayerName3(QString s)
{
playerName3Text = s;
emit playerName3Changed();
}
void PlayerAreaModel::setPlayerName4(QString s)
{
playerName4Text = s;
emit playerName4Changed();
}
void PlayerAreaModel::setPlayerName5(QString s)
{
playerName5Text = s;
emit playerName5Changed();
}
void PlayerAreaModel::setPlayerName6(QString s)
{
playerName6Text = s;
emit playerName6Changed();
}
void PlayerAreaModel::setPlayerName7(QString s)
{
playerName7Text = s;
emit playerName7Changed();
}

56
PlayerAreaModel.h Normal file
View file

@ -0,0 +1,56 @@
#pragma once
#include <QQuickView>
#include <QtGui/qwindow.h>
#include <qobject.h>
#include <qtmetamacros.h>
class PlayerAreaModel : public QObject
{
Q_OBJECT
QML_ELEMENT
Q_PROPERTY(QString playerName1 READ playerName1 WRITE setPlayerName1 NOTIFY playerName1Changed)
Q_PROPERTY(QString playerName2 READ playerName2 WRITE setPlayerName2 NOTIFY playerName2Changed)
Q_PROPERTY(QString playerName3 READ playerName3 WRITE setPlayerName3 NOTIFY playerName3Changed)
Q_PROPERTY(QString playerName4 READ playerName4 WRITE setPlayerName4 NOTIFY playerName4Changed)
Q_PROPERTY(QString playerName5 READ playerName5 WRITE setPlayerName5 NOTIFY playerName5Changed)
Q_PROPERTY(QString playerName6 READ playerName6 WRITE setPlayerName6 NOTIFY playerName6Changed)
Q_PROPERTY(QString playerName7 READ playerName7 WRITE setPlayerName7 NOTIFY playerName7Changed)
public:
explicit PlayerAreaModel(QObject *parent = nullptr);
QString playerName1();
QString playerName2();
QString playerName3();
QString playerName4();
QString playerName5();
QString playerName6();
QString playerName7();
void setPlayerName1(QString s);
void setPlayerName2(QString s);
void setPlayerName3(QString s);
void setPlayerName4(QString s);
void setPlayerName5(QString s);
void setPlayerName6(QString s);
void setPlayerName7(QString s);
signals:
void playerName1Changed();
void playerName2Changed();
void playerName3Changed();
void playerName4Changed();
void playerName5Changed();
void playerName6Changed();
void playerName7Changed();
private:
QString playerName1Text;
QString playerName2Text;
QString playerName3Text;
QString playerName4Text;
QString playerName5Text;
QString playerName6Text;
QString playerName7Text;
};

48
PlayerAreaView.qml Normal file
View file

@ -0,0 +1,48 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import roulette
Item {
PlayerAreaModel {
id: playerAreaModel
}
ColumnLayout {
Text {
text: "Croupier"
}
TextField {
text: playerAreaModel.playerName1
onEditingFinished: playerAreaModel.playerName1 = text
selectByMouse: true
}
TextField {
text: playerAreaModel.playerName2
onEditingFinished: playerAreaModel.playerName2 = text
}
TextField {
text: playerAreaModel.playerName3
onEditingFinished: playerAreaModel.playerName3 = text
}
TextField {
text: playerAreaModel.playerName4
onEditingFinished: playerAreaModel.playerName4 = text
}
TextField {
text: playerAreaModel.playerName5
onEditingFinished: playerAreaModel.playerName5 = text
}
TextField {
text: playerAreaModel.playerName6
onEditingFinished: playerAreaModel.playerName6 = text
}
TextField {
text: playerAreaModel.playerName7
onEditingFinished: playerAreaModel.playerName7 = text
}
Text {
text: playerAreaModel.playerName1
}
}
}

21
Root.qml Normal file
View file

@ -0,0 +1,21 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import roulette
Pane {
id: rootWindow
height: 500
width: 1000
PlayerAreaView {
}
/*
* Dentro do Text não podes mudar directamente
* o text do playerAreaModel;
* Para fazer isso tens que mandar um sinal
* que está ligado a um slot do playerAreaModel
* que mudar esse atributo
*/
}

14
main.cpp Normal file
View file

@ -0,0 +1,14 @@
#include <QGuiApplication>
#include <QQuickView>
#include "MainWindow.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
MainWindow view;
view.show();
return app.exec();
}