Kit Deepin Ferramenta (DTK)

Logotipo da DTK.

Kit Deepin Ferramenta é um conjunto de ferramentas de desenvolvimento de interface escritas em C ++ /Qt. É focado na experiência do usuário. Ele contém a janela base fácil de reconhecer, vários controles e utilitários para exibir no ambiente de área de trabalho.

Esta página é um trecho da categoria Desenvolvimento, para criar aplicativos e componentes do Deepin. Se você deseja saber quais aplicativos são desenvolvidos, temos listado no wiki.

convenções

Para criar um programa escrito com DTK, sugerimos estas convenções:

Aplicativo em branco, sem o botão Fechar.
  • O fundo deve ser totalmente preto ou branco. Começa com uma apresentação ou completamente vazio.
  • A barra superior consiste em um ícone, título, menu contextual e botões para minimizar, maximizar e fechar. Opcionalmente, desde que a simplicidade seja mantida, o título pode ser substituído por um botão de acesso rápido ou por um mecanismo de busca com botões voltar e avançar.
  • É possível aplicar borrão (desfoque) para aplicar profundidade a objetos distantes ou para substituir o fundo sólido.
  • Desativar os botões de minimizar ou fechar geralmente é útil em certas situações. Neste caso, o botão não desaparecerá se não for mostrado quase desbotado.
  • O menu de contexto deve ter um botão Fechar ou Sobre.
  • Para adicionar ferramentas, sugerimos usar uma barra lateral em vez de aumentar a barra superior.

Compilando um programa Deepin

O programa para compilar recomendado é qmake ou Qt Creator. Por exemplo, para o primeiro, qmake deepin-draw.pro && make. Os submódulos importantes, indicados no artigo Construir um aplicativo escrito em DTK, são:

  • dtkcore (formulário principal)
  • dtkwidget (layout de controles)
  • dtkwm (integração com servidor gráfico, dependente de DDE)

Estes estão incluídos na biblioteca para o treinamento dos programas e funcionam com Qt ou alguma implementação compatível se não estiver escrito em C ++. Todo o componente está sob a licença LGPL. Logos podem ser png ou svg. O modelo criado pela comunidade Deepin em espanhol é encontrado no Github.

Um aplicativo criado no DTK. Crédito Deepin Código Latina.

Controles disponíveis

O formulário é a janela principal com barras superior e inferior. Isso geralmente tem vários controles para adicionar controle: Botões, botões chamativos, rótulo, caixa de texto, caixa de senha, caixa de seleção, lista suspensa, indicador numérico, imagem, controle deslizante, etc. As opções disponíveis estão na pasta Widget por dtkwidget.

A maioria dos controles começa com o prefixo D. Por exemplo, DPushButton é uma propriedade que indica o botão.

Bosquejo de controles en Deepin DTK
Esboço de controle no Deepin DTK

Amostra de código de estrutura

O código-fonte é criado por Deepin em espanhol sob GPLv3. Existem vários exemplos de como usar a partir do repositório Deepin.

Extraído de main.cpp e escrito em C ++:

#include "mainwindow.h"
#include <DApplication>
#include <DWidgetUtil>
#include <DAboutDialog>

DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
    DApplication::loadDXcbPlugin();
    DApplication a(argc, argv);
    DAboutDialog dialog;
    a.loadTranslator();
    a.setAttribute(Qt::AA_UseHighDpiPixmaps);
    a.setApplicationName("Template");
    a.setProductName("Template");
    a.setAboutDialog(&dialog);

     dialog.setWindowTitle("Template");
     dialog.setProductName("<span>Description</span>");
     dialog.setProductIcon(QIcon("://productlogo.svg"));
     dialog.setCompanyLogo(QPixmap("://companylogo.png"));
     dialog.setDescription("");
     dialog.setVersion(DApplication::buildVersion("Version 1.0"));
     dialog.setWebsiteName("example.org");
     dialog.setWebsiteLink("https://example.org");

    MainWindow w;
    w.show();

    Dtk::Widget::moveToCenter(&w);
    return a.exec();
}

Exemplo de mainwindow.cpp escrito em C ++:

#include "mainwindow.h"
#include <DWidgetUtil>
#include <DSearchEdit>
#include <DTitlebar>
#include <QDebug>
#include <QMenu>
#include <QAction>

MainWindow::MainWindow(DMainWindow *parent)
    : DMainWindow(parent)
{
    setCentralWidget(w);
    moveToCenter(this);
    MainWindow::resize(630,500);

    DSearchEdit *searchEdit = new DSearchEdit;
    titlebar()->setCustomWidget(searchEdit);
    searchEdit->setFixedWidth(200);
    searchEdit->show();

    QMenu *menu=new QMenu;
    QAction *action=new QAction("Action");
    menu->addAction(action);
    titlebar()->setMenu(menu);

    titlebar()->setIcon(QIcon(":/productlogo.svg"));

    connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged,this,&MainWindow::setTheme);
}

MainWindow::~MainWindow()
{
    delete w;
}

void MainWindow::setTheme(DGuiApplicationHelper::ColorType theme)
{
    if(theme==DGuiApplicationHelper::LightType){
        qDebug()<<"Lighe";
    }else {
        qDebug()<<"Dark";
    }
}

API

Para mais informações consulte Deepin Desktop Environment.

implementação

Ambas as distribuições principal e outras implementam as bibliotecas para que os aplicativos funcionem.

leitura adicional

Link externo:

Tags:

Você recomendaria este artigo?