Está en la página 1de 20

Código del proyecto de programación

Nombre: Sairo salinas


fecha: 28 / 01 /2024
asignatura: programación I
el código de una aplicación que nos permite aprender los colores en
inglés.
Proyecto colors

#include "sairoproyect.h"
#include <QtWidgets/QApplication>
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
#include <QGridLayout>
#include <QLabel>
#include <QTimer>
#include <QPointer>
#include <QDialog>
#include <QPropertyAnimation>

class WelcomeDialog : public QDialog {


public:
WelcomeDialog(QWidget* parent = nullptr) : QDialog(parent) {
setWindowTitle("Colors App");

// Crear QLabel para la imagen de fondo


QLabel* backgroundLabel = new QLabel(this);
QPixmap backgroundImage("C:\\Users\\Asus Vivobook\\Desktop\\
WhatsApp Image 2024-01-28 at 12.15.14.jpeg");
backgroundLabel->setPixmap(backgroundImage);
backgroundLabel->setScaledContents(true);

// Configurar el tamaño y la posición de la imagen de fondo


backgroundLabel->setGeometry(0, 0, 600, 400);

QLabel* welcomeLabel = new QLabel("Bienvenido al proyecto Colors",


this);
welcomeLabel->setAlignment(Qt::AlignCenter);

// Establecer un estilo llamativo para el texto


welcomeLabel->setStyleSheet("font-size: 24px; font-weight: bold;
color: #00000;"); // Puedes ajustar los valores según tus preferencias

// Configurar animación de opacidad


QPropertyAnimation* animation = new
QPropertyAnimation(welcomeLabel, "windowOpacity");
animation->setStartValue(0.0);
animation->setEndValue(1.0);
animation->setDuration(1000); // Duración de la animación en
milisegundos

// Configurar el temporizador para cerrar la ventana después de 5


segundos
QTimer* timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &WelcomeDialog::accept);

// Configurar el layout
QVBoxLayout* layout = new QVBoxLayout(this);
layout->addWidget(welcomeLabel);

// Establecer la geometría de la ventana


setGeometry(100, 100, 600, 400);

// Iniciar la animación y el temporizador


animation->start();
timer->start(5000);
}
};

int main(int argc, char *argv[])


{
QApplication app(argc, argv);

WelcomeDialog welcomeDialog;
if (welcomeDialog.exec() != QDialog::Accepted) {
return 0; // Si el usuario cierra la ventana de bienvenida, salir de la
aplicación
}

// Crear la ventana principal


QMainWindow ventana;
ventana.setWindowTitle("Colors");

// Crear los botones con sus respectivos colores en español


QPushButton* botonAmarillo = new QPushButton("Amarillo",
&ventana);
botonAmarillo->setStyleSheet("background-color: yellow;");
QObject::connect(botonAmarillo, &QPushButton::clicked, [&ventana]() {
// Ocultar los botones
ventana.centralWidget()->hide();

// Mostrar el color en inglés en el centro de la pantalla


QPointer<QLabel> colorLabel = new QLabel("Yellow", &ventana);
colorLabel->setStyleSheet("background-color: yellow; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");
// Mostrar los botones
ventana.centralWidget()->show();
}
});
});

QPushButton* botonAzul = new QPushButton("Azul", &ventana);


botonAzul->setStyleSheet("background-color: blue;");
QObject::connect(botonAzul, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: blue;");
// Ocultar los botones
ventana.centralWidget()->hide();

// Mostrar el color en inglés en el centro de la pantalla


QPointer<QLabel> colorLabel = new QLabel("blue", &ventana);
colorLabel->setStyleSheet("background-color: blue; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonRojo = new QPushButton("Rojo", &ventana);


botonRojo->setStyleSheet("background-color: red;");
QObject::connect(botonRojo, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: red;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("red", &ventana);
colorLabel->setStyleSheet("background-color: red; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonVerde = new QPushButton("Verde", &ventana);


botonVerde->setStyleSheet("background-color: green;");
QObject::connect(botonVerde, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: green;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("green", &ventana);
colorLabel->setStyleSheet("background-color: green; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();
// Programar el temporizador para restaurar el fondo blanco y mostrar
los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonBlanco = new QPushButton("Blanco", &ventana);


botonBlanco->setStyleSheet("background-color: white;");
QObject::connect(botonBlanco, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: white;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("white", &ventana);
colorLabel->setStyleSheet("background-color: white; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonNegro = new QPushButton("Negro", &ventana);


botonNegro->setStyleSheet("background-color: black; color: white;");
QObject::connect(botonNegro, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: black;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("black", &ventana);
colorLabel->setStyleSheet("background-color: black; color: white;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonMorado = new QPushButton("Morado", &ventana);


botonMorado->setStyleSheet("background-color: purple;");
QObject::connect(botonMorado, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: purple;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("purple", &ventana);
colorLabel->setStyleSheet("background-color: purple; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonCafe = new QPushButton("Cafe", &ventana);


botonCafe->setStyleSheet("background-color: brown; color: white;");
QObject::connect(botonCafe, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: brown;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("brown", &ventana);
colorLabel->setStyleSheet("background-color: brown; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonNaranja = new QPushButton("Naranja", &ventana);


botonNaranja->setStyleSheet("background-color: orange; color:
white;");
QObject::connect(botonNaranja, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: orange;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("orange", &ventana);
colorLabel->setStyleSheet("background-color: orange; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonRosado = new QPushButton("Rosado", &ventana);


botonRosado->setStyleSheet("background-color: pink; color: white;");
QObject::connect(botonRosado, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: pink;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("pink", &ventana);
colorLabel->setStyleSheet("background-color: pink; color: black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

QPushButton* botonPlomo = new QPushButton("Plomo", &ventana);


botonPlomo->setStyleSheet("background-color: gray; color: white;");
QObject::connect(botonPlomo, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: gray;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("gray", &ventana);
colorLabel->setStyleSheet("background-color: gray; color: white;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();

// Restaurar el fondo blanco


ventana.setStyleSheet("background-color: white;");
// Mostrar los botones
ventana.centralWidget()->show();
}
});
});

QPushButton* botonCeleste = new QPushButton("Celeste", &ventana);


botonCeleste->setStyleSheet("background-color: #87CEEB; color:
white;");
QObject::connect(botonCeleste, &QPushButton::clicked, [&ventana]() {
ventana.setStyleSheet("background-color: #87CEEB;");
// Ocultar los botones
ventana.centralWidget()->hide();
// Mostrar el color en inglés en el centro de la pantalla
QPointer<QLabel> colorLabel = new QLabel("sky blue", &ventana);
colorLabel->setStyleSheet("background-color: #87CEEB; color:
black;");
colorLabel->setAlignment(Qt::AlignCenter);
colorLabel->setGeometry(ventana.rect());
colorLabel->show();

// Programar el temporizador para restaurar el fondo blanco y mostrar


los botones
QTimer::singleShot(5000, [&ventana, colorLabel]() {
// Ocultar el color en el centro
if (colorLabel) {
colorLabel->hide();
// Restaurar el fondo blanco
ventana.setStyleSheet("background-color: white;");

// Mostrar los botones


ventana.centralWidget()->show();
}
});
});

// Usar un layout de cuadrícula para organizar los botones


QGridLayout* layout = new QGridLayout(&ventana);
layout->addWidget(botonAmarillo, 0, 0);
layout->addWidget(botonAzul, 0, 1);
layout->addWidget(botonRojo, 0, 2);
layout->addWidget(botonVerde, 0, 3);
layout->addWidget(botonBlanco, 1, 0);
layout->addWidget(botonNegro, 1, 1);
layout->addWidget(botonMorado, 1, 2);
layout->addWidget(botonCafe, 1, 3);
layout->addWidget(botonNaranja, 2, 0);
layout->addWidget(botonRosado, 2, 1);
layout->addWidget(botonPlomo, 2, 2);
layout->addWidget(botonCeleste, 2, 3);
// ... (Añade el resto de los botones al diseño)

// Establecer el layout en la ventana


QWidget* centralWidget = new QWidget(&ventana);
centralWidget->setLayout(layout);
ventana.setCentralWidget(centralWidget);

// Crear un temporizador para restaurar el fondo blanco


QTimer timer;
timer.setSingleShot(true);
QObject::connect(&timer, &QTimer::timeout, [&ventana, &layout]() {
// Restaurar el fondo blanco
ventana.setStyleSheet("background-color: white;");
// Mostrar los botones
ventana.centralWidget()->show();
});

// Configurar el tamaño de la ventana


ventana.setGeometry(100, 100, 600, 400);

// Mostrar la ventana
ventana.show();

// Conectar el temporizador a los botones


QObject::connect(botonAmarillo, &QPushButton::clicked, [&timer]() {
timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonAzul, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonRojo, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonVerde, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonBlanco, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonNegro, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonMorado, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonCafe, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonNaranja, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonRosado, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonPlomo, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});

QObject::connect(botonCeleste, &QPushButton::clicked, [&timer]() {


timer.start(5000); // Iniciar el temporizador después de 5 segundos
});
// ... (Conecta el temporizador a los demás botones)

// Ejecutar el bucle de eventos de la aplicación


return app.exec();
}

También podría gustarte