QTcreator desarrolla una aplicación de diario (pantalla GIF de inicio rápido para principiantes)

Escribir al frente

Personalmente, soy una persona más sentimental. Incluso la aplicación de uso prolongado en el teléfono móvil tendrá un sentido de dependencia, y la aplicación "Wuji" ha entrado en mi vida hace mucho tiempo con su simplicidad y arte. Durante este período de tiempo de aprendizaje sobre el desarrollo de QT , se puede considerar como un proceso de consolidación de C ++. Quiero escribir un "Wuji" de bajo perfil en el lado ganador por mí mismo . Todo el proyecto está actualmente en desarrollo, pero el El marco general está ahí Ahora, las funciones principales están básicamente formadas, algunas funciones personalizadas se agregarán más adelante, y este blog continuará actualizándose.

Entorno de desarrollo: win10, QT creator, MINGW
Lenguaje de desarrollo: C ++ 11 o superior,
conocimientos básicos de desarrollo: orientado a objetos

Proyecto github:https://github.com/ZYunfeii/QT Las
variables de entorno deben configurarse por sí mismas

Interfaz de inicio de sesión

Este bloque tiene actualmente tres cuentas integradas, una cuenta de prueba (para depuración) y dos cuentas de usuario. Puede considerarse como una interfaz de inicio de sesión más tradicional. Simplemente ingrese la cuenta y la contraseña y haga clic para iniciar sesión. La función de registro de cuenta aún no se ha desarrollado (porque la uso yo mismo).
Inserte la descripción de la imagen aquí
El método de implementación también es bastante simple. Dos QStringLists corresponden a la contraseña de la cuenta, el enlace de la ranura de la señal del botón y se obtiene el índice del nombre de usuario. Si no lo obtiene, no tiene una cuenta. Una vez que lo obtiene , puede verificar que la contraseña sea correcta.

Interfaz principal

Esta parte es la interfaz que el usuario ingresa después de iniciar sesión correctamente. El estilo de pintura general no es lo suficientemente hermoso y el diseñador de la interfaz de usuario debe embellecer hhh.
Inserte la descripción de la imagen aquí

Esta parte es principalmente para mostrar el diario que se ha escrito y borrar el diario (hay una pequeña × a la derecha). El diario incluye contenido, tiempo, fuente y tamaño de fuente en ese momento, etc. Por supuesto, también está el avatar del usuario ... Todos los datos se gestionan y almacenan a través de la base de datos SQLite , que se introducirá más adelante. La ventaja de usar una base de datos es que todos los datos están disponibles para el próximo inicio de sesión y la base de datos también es muy conveniente para operar con C ++.

Nueva interfaz de diario

Haga clic en el botón Nuevo en la esquina superior derecha de la interfaz principal para crear un nuevo diario:
Inserte la descripción de la imagen aquí
esta página de edición actualmente admite el ajuste de la fuente y el tamaño de la fuente. Después de anotar la felicidad o los problemas de hoy, haga clic en Guardar en la esquina superior derecha y regístrelo !
Inserte la descripción de la imagen aquí
El diario que acaba de escribir se coloca automáticamente en la parte superior y el tamaño de fuente es el mismo que el editado.

Si está decepcionado con su yo pasado, elimine las tonterías que anotó en esos momentos (Haga clic en la × roja a la derecha) ,La base de datos también eliminará este registro.Y ya no tienes forma de restaurarlo. Después de todo, el pasado nunca volverá y el reloj nunca se detendrá.

Base de datos SQLite

QT viene con su propia base de datos SQLite. Cuando use la base de datos, no olvide agregar esta oración al archivo pro:

QT += sql

Cree varias tablas en la base de datos:

        //创建n个数据库(n = usernameList.length())
        QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE",QString("myDiary%1").arg(i));
        db.setDatabaseName(QString(".//qtDb%1.db").arg(i));
        if( !db.open())  qDebug() << "无法建立数据库连接";       //这个db.open相当关键啊!没这一步后面写数据可失败。
        else qDebug()<<"数据库连接成功";

        QSqlQuery query(db);
        query.exec("create table person (time varchar, diary varchar,family varchar,pointSize varchar)");
        db.close();

No olvide: #include <QSqlQuery> #include <QSqlDatabase>
Además, durante la primera operación, no olvide que la db.open()
base de datos contiene cuatro piezas de información: hora, contenido del diario, fuente, tamaño de fuente, que puede aumentar en el futuro.

La base de datos del usuario correspondiente está vinculada en la interfaz principal, y muchas funciones se pueden completar utilizando la base de datos. Por ejemplo, la función de contar el número de diarios se puede realizar de la siguiente manera:

    //初始化日记数量并显示在顶部
    query.first();
    query.previous();
    if(query.last())
    {
    
    
        numberOfRows =  query.at() + 1;
    }
    ui->diaryNumLabel->setText(QString("您已累计写下了%1篇日记").arg(numberOfRows));

La consulta es el "puntero" de la base de datos que obtiene. Primero mueva la consulta a la ubicación virtual anterior de los primeros datos, y luego query.last baja hasta que la consulta apunta al último número, y su índice más 1 es la capacidad total de la base de datos.
Permítanme publicar algunas publicaciones en el blog sobre el conocimiento de bases de datos:
Operación de la clase QT-QSqlQuery Base de datos SQLite (crear, consultar, eliminar, modificar) Explicación detallada de la
base de datos Qt: (3) Use la clase QSqlQuery para ejecutar declaraciones SQL (1)
Base de datos propia de Qt QSQLITE (un ejemplo muy específico)
Qt learning road ocho usos de qt para operar la base de datos
Básicamente, puedes empezar después de leerlo, no preguntes, ¡solo inténtalo!

Por supuesto, todavía hay muchas trampas en la base de datos. Por ejemplo, cuando uso la cadena de fecha para eliminar, la base de datos compara la cadena con comillas simples. En este momento, haga esto:

QString deleteString = QString("%1%2%3").arg("'").arg(time).arg("'");                 
bool flag = query.exec(QString("DELETE FROM person WHERE time = %1").arg(deleteString));

Oye, pequeño truco ...

Combina tus propios controles

Inserte la descripción de la imagen aquí
Un control como este es un control encapsulado hecho de múltiples controles. El método específico no se repetirá ( promocionará a operación ). El objeto opuesto es el alma.

scrollArea 和 Diseño

Estos dos espacios constituyen el cuerpo principal de la interfaz principal. El scrollArea es como una ventana cubierta sobre el mantel. Entendiendo esta oración se puede entender el control. El diseño determina las reglas de disposición de las cosas sobre el mantel. Aquí hay una publicación de blog:
Cómo usar QScrollArea del área de desplazamiento automático de QT, gráficos detallados y texto

Proyecto a continuar

La barra blanca debajo de la interfaz principal es para una futura expansión. El aprendizaje de idiomas sigue siendo eficaz en el desarrollo.
El proyecto se ha subido a github.Https://github.com/ZYunfeii/QT

8 de noviembre:
Inserte la descripción de la imagen aquí

9 de noviembre: se
agregó la función de registro del diario, admite hacer doble clic para mostrar los detalles del diario y la base de datos también está conectada:
Inserte la descripción de la imagen aquí

16 de noviembre: se realizaron
algunas optimizaciones en la interfaz de inicio de sesión: nombre de inicio de sesión predeterminado y use la tecla Intro para iniciar sesión rápidamente. También cambié el ícono del programa ejecutable exe. Ya comencé a usarlo. No está mal:
Inserte la descripción de la imagen aquí
17 de noviembre:
Vuelva a escribir el nombre de usuario y la contraseña de la interfaz de inicio de sesión usando el contenedor asociativo de mapas y agregue múltiples efectos de animación a la interfaz de usuario .:
Inserte la descripción de la imagen aquí

22 de noviembre: De
repente se me ocurrió una idea hoy para hacer una función en la interfaz de inicio de sesión, cuando la cuenta y la contraseña se ingresen correctamente, el avatar se cargará (un poco diferente de qq)
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_43145941/article/details/109559455
Recomendado
Clasificación