Deepin Tool Kit (DTK)

DTK-Logo.

Deepin Tool Kit ist eine Reihe von Tools zur Schnittstellenentwicklung, die in C ++ / geschrieben wurdenQt. Es konzentriert sich auf die Benutzererfahrung. Es enthält das leicht zu erkennende Basisfenster, eine Reihe von Steuerelementen und Dienstprogrammen, die in der Desktop-Umgebung angezeigt werden können.

Diese Seite ist ein Auszug aus der Kategorie Entwicklung, um Anwendungen und Komponenten von Deepin zu erstellen. Wenn Sie wissen möchten, welche Anwendungen entwickelt werden, haben wir im Wiki gelistet.

Konventionen

Um ein mit DTK geschriebenes Programm zu erstellen, empfehlen wir folgende Konventionen:

Leere Anwendung ohne die Schaltfläche zum Schließen.
  • Der Hintergrund sollte schwarz oder weiß sein. Es beginnt mit einer Präsentation oder ist völlig leer.
  • Die obere Leiste besteht aus einem Symbol, einem Titel, einem Kontextmenü sowie Schaltflächen zum Minimieren, Maximieren und Schließen. Optional kann der Titel, solange die Einfachheit erhalten bleibt, durch eine Schnellzugriffsschaltfläche oder eine Suchmaschine mit Vorwärts- und Rückwärtsschaltflächen ersetzt werden.
  • Es ist möglich, sich zu bewerben verwischen (Unschärfe), um entfernte Objekte zu vertiefen oder den festen Hintergrund zu ersetzen.
  • Das Deaktivieren der Minimierungs- oder Schließschaltflächen ist in bestimmten Situationen häufig hilfreich. In diesem Fall verschwindet die Schaltfläche nicht, wenn sie nicht fast ausgeblendet angezeigt wird.
  • Das Kontextmenü sollte eine Schaltfläche Schließen oder Info enthalten.
  • Um Werkzeuge hinzuzufügen, empfehlen wir, eine Seitenleiste zu verwenden, anstatt die obere Leiste zu vergrößern.

Das Kompilieren eines Programms Deepin

Das Programm für Kompilierung Empfohlen wird qmake oder Qt Creator. Zum Beispiel zum ersten Mal qmake deepin-draw.pro && make. Die wichtigen Untermodule, auf die im Artikel hingewiesen wird Erstellen Sie eine in DTK geschriebene Anwendung, Sie sind:

  • dtkcore (Hauptform)
  • dtkwidget (Layout der Steuerelemente)
  • dtkwm (Integration zu Grafikserver, abhängig von DDE)

Diese sind in der Bibliothek für das Training von Programmen enthalten und funktionieren mit Qt oder einer kompatiblen Implementierung, wenn es nicht in C ++ geschrieben ist. Die gesamte Komponente steht unter der LGPL-Lizenz. Logos können sein png oder svg. Die von der Deepin-Community auf Spanisch erstellte Vorlage lautet auf Github gefunden.

Eine in DTK erstellte Anwendung. Anerkennung Deepin Latin-Code.

Verfügbare Steuerelemente

Das Formular ist das Hauptfenster mit oberen und unteren Balken. In der Regel müssen mehrere Steuerelemente hinzugefügt werden: Schaltflächen, auffällige Schaltflächen, Beschriftung, Textfeld, Kennwortfeld, Kontrollkästchen, Dropdown-Liste, numerische Anzeige, Bild, Schieberegler usw. Die verfügbaren Optionen befinden sich im Ordner Widget von dtkwidget.

Die meisten Steuerelemente beginnen mit dem Präfix D. Beispielsweise ist DPushButton eine Eigenschaft, die die Schaltfläche angibt.

Bosquejo de controles en Deepin DTK
Kontrollskizze in Deepin DTK

Beispiel für einen Strukturcode

Der Quellcode wird von Deepin auf Spanisch unter GPLv3 erstellt. Es gibt mehrere Beispiele für die Verwendung aus dem Deepin Repository.

Aus main.cpp extrahiert und in C ++ geschrieben:

#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();
}

Beispiel für mainwindow.cpp in 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

Weitere Informationen finden Sie unter Deepin Desktop Environment.

Implementierung

Sowohl die Haupt- als auch die andere Distribution implementieren die Bibliotheken, damit die Anwendungen funktionieren.

weiter lesen

Externer Link:

Tags:

Möchten Sie diesen Artikel empfehlen?