QTcreator desenvolve um aplicativo de diário (exibição GIF de início rápido para novatos)

Escreva na frente

Pessoalmente, sou uma pessoa mais sentimental. Até mesmo o aplicativo usado há muito tempo no celular terá uma sensação de dependência, e o aplicativo "Wuji" entrou na minha vida há muito tempo com sua simplicidade e arte. Durante este período de tempo de aprendizagem do desenvolvimento QT , pode ser considerado como um processo de consolidação do C ++. Eu quero escrever um "Wuji" discreto no lado da vitória sozinho . Todo o projeto está atualmente em desenvolvimento, mas o quadro geral está lá. Agora, as funções principais estão basicamente formadas, algumas funções personalizadas serão adicionadas mais tarde, e este blog continuará a ser atualizado.

Ambiente de desenvolvimento: win10, QT creator, MINGW
Development language: C ++ 11 ou superior,
conhecimento básico de desenvolvimento: orientado a objetos

Projeto github:https://github.com/ZYunfeii/QT
as variáveis ​​de ambiente precisam ser configuradas por si mesmas

Interface de login

Este bloco possui atualmente três contas integradas, uma conta de teste (para depuração) e duas contas de usuário. Pode ser considerada uma interface de login mais tradicional, basta inserir a conta e a senha e clicar em para fazer o login. A função de registro de conta ainda não foi desenvolvida (porque eu mesmo a uso).
Insira a descrição da imagem aqui
O método de implementação também é bastante simples. Duas QStringLists correspondem à senha da conta, ao link do slot do sinal do botão e ao índice do nome de usuário é obtido. Se você não conseguir, significa que não tem uma conta. Depois de obtê-lo , você pode verificar se a senha está correta.

Interface principal

Esta parte é a interface que o usuário entra após efetuar login com sucesso. O estilo geral de pintura não é bonito o suficiente, e o designer de IU precisa embelezar hhh.
Insira a descrição da imagem aqui

Esta parte é principalmente para exibir o diário que foi escrito e deletar o diário (há um pequeno × à direita). O diário inclui conteúdo, horário, fonte e tamanho da fonte no momento, etc. Claro, existe também o avatar do usuário ... Todos os dados são gerenciados e armazenados através do banco de dados SQLite , que será apresentado posteriormente. A vantagem de usar um banco de dados é que todos os dados ficam disponíveis para o próximo login, e o banco de dados também é muito conveniente para operar com C ++.

Nova interface de diário

Clique no botão Novo no canto superior direito da interface principal para criar um novo diário:
Insira a descrição da imagem aqui
Esta página de edição atualmente suporta o ajuste de fonte e tamanho da fonte. Depois de anotar a felicidade ou problemas de hoje, clique em Salvar no canto superior direito e registre-o !
Insira a descrição da imagem aqui
O diário que você acabou de escrever é automaticamente colocado no topo e o tamanho da fonte é o mesmo que o editado.

Se você está desapontado com seu eu passado, por favor, exclua as coisas bobas que você escreveu naqueles tempos (Clique no × vermelho à direita) ,O banco de dados também excluirá este registroE você não tem mais como restaurá-lo. Afinal, o passado nunca mais voltará e o relógio nunca vai parar.

Banco de dados SQLite

QT vem com seu próprio banco de dados SQLite. Ao usar o banco de dados, não se esqueça de adicionar esta frase ao arquivo pro:

QT += sql

Crie várias tabelas no banco de dados:

        //创建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();

Não se esqueça: #include <QSqlQuery> #include <QSqlDatabase>
Além disso, durante a primeira operação, não se esqueça que o db.open()
banco de dados contém quatro informações: horário, conteúdo do diário, fonte, tamanho da fonte, que pode aumentar no futuro.

O banco de dados do usuário correspondente está vinculado na interface principal, e muitas funções podem ser realizadas usando o banco de dados, por exemplo, a função de contagem do número de diários pode ser realizada da seguinte forma:

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

A consulta é o "ponteiro" do banco de dados que você obtém. Primeiro mova a consulta para o local virtual anterior dos primeiros dados e, em seguida, query.last desce até que a consulta aponte para o último número e seu índice mais 1 seja a capacidade total do banco de dados.
Deixe-me postar alguns posts sobre o conhecimento do banco de dados:
operação da classe QT-QSqlQuery Banco de dados SQLite (criar, consultar, excluir, modificar) Explicação detalhada do
banco de dados Qt: (3) Usar a classe QSqlQuery para executar instruções SQL (1)
Banco de dados do próprio Qt QSQLITE (um exemplo muito específico)
Qt learning road eight-use qt para operar o banco de dados Você
pode basicamente começar depois de lê-lo, não pergunte, apenas tente!

Claro, ainda existem muitas armadilhas no banco de dados. Por exemplo, quando eu uso a string de data para excluir, o banco de dados compara a string com aspas simples. Neste momento, faça o seguinte:

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

Ei, pequeno truque ...

Combine seus próprios controles

Insira a descrição da imagem aqui
Um controle como este é um controle encapsulado feito de múltiplos controles.O método específico não será repetido ( promovido a operação ) .O objeto oposto é a alma.

scrollArea 和 Layout

Esses dois espaços constituem o corpo principal da interface principal. A scrollArea é como uma janela coberta sobre a toalha de mesa. Compreendendo esta frase, é possível entender o controle. O layout determina as regras de disposição das coisas na toalha de mesa. Aqui está uma postagem do blog:
Como usar QScrollArea da área de rolagem automática do QT, gráfico detalhado e texto

Projeto a ser continuado

A barra branca sob a interface principal é para expansão futura. A aprendizagem de línguas ainda é eficaz no desenvolvimento.
O projeto foi carregado para o githubHttps://github.com/ZYunfeii/QT

8 de novembro:
Insira a descrição da imagem aqui

9 de novembro:
Adicionada a função de registro do diário, suporta clique duplo para abrir os detalhes do diário e o banco de dados também é conectado:
Insira a descrição da imagem aqui

16 de novembro:
algumas otimizações foram feitas na interface de login: nome de login padrão e use a tecla enter para fazer login rapidamente. Também mudei o ícone do programa executável exe. Já comecei a usá-lo. Nada mal:
Insira a descrição da imagem aqui
17 de novembro:
reescreva o nome de usuário e a senha da interface de login usando o contêiner associativo do mapa e adicione vários efeitos de animação à interface do usuário .:
Insira a descrição da imagem aqui

22 de novembro: de
repente tive uma ideia hoje de fazer uma função para a interface de login, quando a conta e a senha forem inseridas corretamente, o avatar será carregado (um pouco diferente de qq)
Insira a descrição da imagem aqui

Acho que você gosta

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