KDE Frameworks/pt-br: Difference between revisions

    From KDE TechBase
    (Created page with "* [https://community.kde.org/Get_Involved/development Como se envolver com a comunidade KDE]")
    (Updating to match new version of source page)
     
    (49 intermediate revisions by one other user not shown)
    Line 2: Line 2:
    [[File:Konqui frameworks cropped.png|noframe|right|200px|]]
    [[File:Konqui frameworks cropped.png|noframe|right|200px|]]


    <div class="mw-translate-fuzzy">
    O [https://kde.org/products/frameworks/ KDE Frameworks], atualmente versão 5 ou KF5, é uma coleção de 80 bibliotecas criadas sobre o [https://www.qt.io Qt application framework] e fornece tudo, desde classes de utilitário a E/S assíncronas e transparentes à rede, além de modelos e widgets de dados adicionais, até integração centralizada em desktop. Se o próprio Qt não fornecer uma certa funcionalidade ou recurso, é provável que exista um KDE framework para isso.
    O [https://kde.org/products/frameworks/ KDE Frameworks], atualmente versão 5 ou KF5, é uma coleção de 80 bibliotecas criadas sobre o [https://www.qt.io Qt application framework] e fornece tudo, desde classes de utilitário a E/S assíncronas e transparentes à rede, além de modelos e widgets de dados adicionais, até integração centralizada em desktop. Se o próprio Qt não fornecer uma certa funcionalidade ou recurso, é provável que exista um KDE framework para isso.
    </div>


    While KF5 does serve as the most basic building blocks of KDE software, they can be used by any Qtx application just like any third-party Qt add-on library. Just like any other KDE software, KF5 uses and favors a CMake build system but all frameworks support QMake as well. Many frameworks are available on multiple desktop operating systems such as Linux and Windows and are even available on Android. Be sure to check each framework's documentation for their supported platforms.  
    <div class="mw-translate-fuzzy">
    Embora o KF5 sirva como os blocos de construção mais básicos do software KDE, eles podem ser usados por qualquer aplicativo Qtx, como qualquer biblioteca adicional do Qt de terceiros. Assim como qualquer outro software KDE, o KF5 usa e favorece o sistema de build do CMake, mas todos os  frameworks também suportam o QMake. Muitas estruturas estão disponíveis em múltiplos sistemas operacionais desktop, como Linux e Windows, e estão disponíveis até no Android. Certifique-se de verificar a documentação de cada framework para suas plataformas suportadas.
    </div>


    __TOC__
    __TOC__


    = Guarantees and License =
    = Garantias e Licença =


    KDE, of course, takes software quality seriously but even more so when it comes to KF5. The Frameworks come with [https://community.kde.org/Frameworks/Policies quality promises] and to make sure you won't need to wait for your favorite bug to get fixed, a new version is [https://community.kde.org/Schedules/Frameworks released monthly]. And since it's free software developed in an open environment, anyone can participate or comment on its development.
    All KDE Frameworks follow strict [https://community.kde.org/Frameworks/Policies quality standards] and offer source and binary compatibility.  


    <div class="mw-translate-fuzzy">
    {{Info (pt BR)|A versão atual do '''KDE Frameworks é 5.63.0'''. Por favor, consulte o [https://kde.org/announcements/kde-frameworks-5.63.0.php release announcement] para obter mais informações.}}
    </div>


    {{Info|The current version of '''KDE Frameworks is 5.63.0'''. Please see the [https://kde.org/announcements/kde-frameworks-5.63.0.php release announcement] for more information.}}
    = Organização =


    The KDE Frameworks are also released under the [https://community.kde.org/Policies/Licensing_Policy permissive LGPL or BSD/MIT licenses], making them ideal and usable for any type of software.
    Cada um dos KDE Frameworks possui um Nível e um Tipo, como você verá na [https://api.kde.org/frameworks/index.html documentação da API]. Embora não seja essencial para o uso dos frameworks, essa organização pode ajudar os desenvolvedores a determinar as dependências dos frameworks.


    = Organization =
    As camadas agrupam os frameworks de acordo com o que eles 'linkam' durante a compilação.


    Each of the KDE Frameworks has a Tier and a Type, as you will see in the [https://api.kde.org/frameworks/index.html API documentation]. While not critical to using the frameworks, this organization can help developers in determining the frameworks' dependencies.
    * Os Frameworks de nível 1 podem depender apenas das estruturas oficiais do Qt ou de outras bibliotecas do sistema;


    Tiers group the frameworks according to what they link to during compilation.
    * Os Frameworks da camada 2 podem depender apenas das estruturas da camada 1, estruturas oficiais do Qt ou outras bibliotecas do sistema;


    * Tier 1 Frameworks can depend only on Qt official frameworks or other system libraries;
    * Os Frameworks de camada 3 podem depender apenas de outras estruturas de camada 3, estruturas de camada 2, estruturas de camada 1, estruturas oficiais de Qt ou outras bibliotecas de sistema.


    * Tier 2 Frameworks can depend only on Tier 1 Frameworks, Qt official frameworks, or other system libraries;
    Os tipos, por outro lado, referem-se às dependências de tempo de execução dos frameworks:


    * Tier 3 Frameworks can depend only on other Tier 3 Frameworks, Tier 2 Frameworks, Tier 1 Frameworks, Qt official frameworks, or other system libraries.
    * Os Frameworks funcionais não podem ter dependências em tempo de execução. O KArchive, por exemplo, pode ser usado como está como uma biblioteca  drop-in.


    Types, on the other hand, refer to the framework's runtime dependencies:
    * Os Frameworks de integração podem ter dependências opcionais em tempo de execução e visam integrar-se ao SO/Plataforma subjacente. O Solid precisa de outros componentes em tempo de execução para fornecer informações de hardware em diferentes plataformas.


    * Functional Frameworks cannot have runtime dependencies. KArchive, for example, can be used as-is as a drop-in library.
    * Solutions têm dependências em tempo de execução obrigatórias para funcionar. O KIO, o Framework de E/S do KDE, exige que certos daemons ofereçam um sistema de arquivos virtual transparente à rede.


    * Integration Frameworks can have optional runtime dependencies and aim at integrating with the underlying OS/Platform. Solid needs other runtime components to deliver hardware information on different platforms.
    = Guia rápido =


    * Solutions have mandatory runtime dependencies to function. KIO, the KDE I/O framework, requires certain daemons to offer a network-transparent virtual filesystem.
    Quão fácil é usar o KDE Frameworks 5? Tão fácil quanto usar qualquer widget Qt ou adicionar qualquer biblioteca C++ ao seu projeto. Você nem precisa deixar de usar o QMake se você achar mais fácil. Aqui está um exemplo muito rápido e direto de como é simples usar um framework.


    = Quick Start Guide =
    {{Note (pt BR)|O exemplo abaixo é escrito apenas para fins de demonstração e não reflete práticas ou convenções de codificação apropriadas. Para obter exemplos mais detalhados, consulte a seção [[Development/Tutorials|Tutoriais]].}}


    How easy is it to use KDE Frameworks 5? Just as easy as using any Qt widget or adding any C++ library to your project. You don't even have to switch away from QMake if that's your cup of tea. Here's one very quick and dirty example of how simple it is to use a framework.
    == Etapa 1: Instale o Framework que você precisa ==


    {{Note|The example below is written just for demonstration purposes and does not reflect proper coding practices or conventions. For more in-depth examples, please check our [[Development/Tutorials|Tutorials]] section.}}
    Neste exemplo, usaremos o [https://api.kde.org/frameworks/kwidgetsaddons/html/classKDatePicker.html KDatePicker widget] do KWidgetsAddons framework. No KDE Neon/Ubuntu/Debian, é tão simples quanto:
     
    == Step 1: Install the Framework you need ==
     
    For this example, we'll be using the [https://api.kde.org/frameworks/kwidgetsaddons/html/classKDatePicker.html KDatePicker widget] from the KWidgetsAddons framework. On KDE Neon/Ubuntu/Debian, it's as simple as:


    <syntaxhighlight lang="bash">
    <syntaxhighlight lang="bash">
    Line 51: Line 54:
    </syntaxhighlight>
    </syntaxhighlight>


    Adjust according to your Linux distro's packaging system, of course. If you want the latest version of the framework and it isn't available from your distro, you will have to get it from the source (Git or tarball) and build it yourself. Check out the KDE Community's handy guide to [https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source building KDE software from source].
    Ajuste de acordo com o gerenciador de pacotes da sua distribuição Linux, é claro. Se você quiser a versão mais recente do framework e ela não estiver disponível na sua distribuição, será necessário obtê-la dos fontes(Git ou tarball) e compilá-la. Confira o guia prático na Comunidade KDE para [https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source compilar o software KDE a partir do fonte].


    == Step 2: Add the Framework to your Project ==
    == Etapa 2: adicione o Framework ao seu projeto ==


    Add the Framework's name, properly capitalized, in your QMake project file just like you would any other Qt module.
    Adicione o nome do Framework, em letras maiúsculas, ao seu arquivo de projeto QMake, como faria com qualquer outro módulo Qt.


    <syntaxhighlight lang="make">
    <syntaxhighlight lang="make">
    Line 66: Line 69:
    </syntaxhighlight>
    </syntaxhighlight>


    If you're already using CMake as your build system of choice, you'll want to also grab the Extra CMake Modules made by the KDE community to provide modules and macros to make finding and linking to Frameworks so much easier.
    Se você já estiver usando o CMake como seu sistema de build preferido, também precisará usar os Extra CMake Modules criados pela comunidade KDE para fornecer módulos e macros para facilitar a localização e o link aos Frameworks.


    == Step 3: Use the Framework ==
    == Etapa 3: Usar o Framework ==


    KDatePicker, like many other widgets from KDE Frameworks, behave just like any Qt widget. As such, you can simply slot them in or use them in Qt projects with no problem at all. Here is a contrived example where selecting a date from the calendar widget displays its string representation on the label beside it.
    O KDatePicker, como muitos outros widgets do KDE Frameworks, se comporta como qualquer widget Qt. Como tal, você pode simplesmente inseri-los ou usá-los em projetos Qt sem nenhum problema. Aqui está um exemplo ilustrativo em que a seleção de uma data no widget de calendário exibe sua representação de sequência no  label ao lado.


    <syntaxhighlight lang="cpp-qt">
    <syntaxhighlight lang="cpp-qt">
    Line 100: Line 103:
    </syntaxhighlight>
    </syntaxhighlight>


    Just build the project as normal and that's it! Welcome to the wonderful world of KDE-powered software!
    Basta compilar o projeto normalmente e é isso! Bem-vindo ao maravilhoso mundo do software KDE!


    = Frameworks Sampler =
    = Exemplos de Frameworks =


    Now that you've seen how easy it is to add KDE Frameworks into your software, here's an appetizer of the various frameworks available and what they can do for you.
    Agora que você viu como é fácil adicionar os KDE Frameworks ao seu software, aqui está uma amostra dos vários frameworks e o que eles podem fazer por você.


    * Like KDatePicker above, [https://api.kde.org/frameworks/kwidgetsaddons/html/index.html KWidgetsAddons] offers a wide variety of add-on widgets that go beyond what Qt itself offers. On the other hand, [https://api.kde.org/frameworks/kcoreaddons/html/annotated.html KCoreAddons] includes non-graphical utility classes that help manage children processes, create autosave files, and create factory-style plugins.
    * Como o KDatePicker acima, o [https://api.kde.org/frameworks/kwidgetsaddons/html/index.html KWidgetsAddons] oferece uma ampla variedade de widgets addons que vão além do que o próprio Qt oferece. Por outro lado, [https://api.kde.org/frameworks/kcoreaddons/html/annotated.html KCoreAddons] inclui classes de utilitários não gráficos que ajudam a gerenciar processos filhos, criar arquivos de salvamento automático e criar factory-style plugins..


    * [https://api.kde.org/frameworks/sonnet/html/index.html Sonnet] adds multi-language spellchecking to any QTextEdit (really QTextDocument) object with support for different spelling backends while [https://api.kde.org/frameworks/syntax-highlighting/html/index.html KSyntaxHighighting] extends Qt's syntax highlighting support with a standardized and expandable syntax definition format.
    * [https://api.kde.org/frameworks/sonnet/html/index.html Sonnet] adiciona verificação ortográfica em vários idiomas a qualquer objeto QTextEdit(realmente um QTextDocument) com suporte para diferentes backends ortográficos, enquanto [https://api.kde.org/frameworks/syntax-highlighting/html/index.html KSyntaxHighighting] estende o suporte de destaque de sintaxe do Qt com um formato de definição de sintaxe padronizada e expansível.


    * [https://api.kde.org/frameworks/threadweaver/html/index.html ThreadWeaver] takes the pain out of one of the most difficult aspects of modern application development: multi-threaded programming.
    * [https://api.kde.org/frameworks/threadweaver/html/index.html ThreadWeaver] elimina as dores de um dos aspectos mais difíceis do desenvolvimento de aplicativos modernos: programação multithread.


    * [https://api.kde.org/frameworks/kconfig/html/index.html KConfig] lets you have a configuration system that works across platforms, no matter the actual back-end file format. [https://api.kde.org/frameworks/kpackage/html/index.html KPackage], on the other hand, can help you extend your programs with content that is installed like plugins.
    * [https://api.kde.org/frameworks/kconfig/html/index.html KConfig] permite que você tenha um sistema de configuração que funcione em várias plataformas, independentemente do formato de arquivo de backend real.O [https://api.kde.org/frameworks/kpackage/html/index.html KPackage], por outro lado, pode ajudá-lo a estender seus programas com conteúdo instalado como plugins.


    * If you need to embed an advanced text editor but don't want to go through the hassle of writing one yourself, [https://api.kde.org/frameworks/kpackage/html/index.html KTextEditor] offers all the functionality you need either as a library or an embeddable KPart.
    * Se precisar incorporar um editor de texto avançado mas não quiser escrever um você mesmo, [https://api.kde.org/frameworks/kpackage/html/index.html KTextEditor] oferece todas as funcionalidades necessárias como biblioteca ou como um KPart incorporado.


    * [https://api.kde.org/frameworks/kirigami/html/index.html Kirigami] is like a framework inside a framework, providing a rich set of Qt Quick components for developing a new breed of applications that bridge the divide between screen sizes and form factors.
    * [https://api.kde.org/frameworks/kirigami/html/index.html Kirigami] é como um framework dentro de um framework, fornecendo um rico conjunto de componentes Qt Quick para o desenvolvimento de uma nova geração de aplicativos que superam a divisão entre tamanhos de tela e form factors.


    * And, of course, there's the [https://api.kde.org/frameworks/plasma-framework/html/index.html Plasma framework] that serves as the foundation for KDE's Plasma workspaces, both for desktops as well as mobile, giving developers the building blocks for creating primary user interfaces as well as applets (widgets) to run on those workspaces.
    * E, é claro, existe o [https://api.kde.org/frameworks/plasma-framework/html/index.html Plasma framework] que serve como base para as áreas de trabalho Plasma do KDE, tanto para desktops quanto móveis, fornecendo aos desenvolvedores os componentes básicos para a criação das interfaces principais do usuário, bem como applets (widgets) para execução nessas áreas de trabalho.




    Be sure to check the [https://api.kde.org/frameworks/index.html full collection of 80 KDE Frameworks] on the API documentation website along with [https://api.kde.org/index.html other KDE libraries] you can use to develop the next killer app, be it on Linux or Windows, desktop or mobile, and anything else in between.
    Verifique a [https://api.kde.org/frameworks/index.html coleção completa dos 80 KDE Frameworks] no site de documentação da API, juntamente com [https://api.kde.org/index.html outras bibliotecas do KDE], você pode usar para desenvolver o próximo 'aplicativo matador', seja no Linux ou Windows, desktop ou móvel, e qualquer outra coisa.


    = Links Importantes =
    = Links Importantes =
    Line 127: Line 130:
    * [https://kde.org/products/frameworks/ Página de produto do KDE Frameworks]
    * [https://kde.org/products/frameworks/ Página de produto do KDE Frameworks]


    * [https://api.kde.org/frameworks/index.html Documentação do Framework da API]
    * [https://api.kde.org/frameworks/index.html Documentaçãoda API do Framework]


    * [[Development/Tutorials|Tutoriais]] e [[Development|TechBase Centro de Desenvolvimento]]
    * [[Development/Tutorials|Tutoriais]] e [[Development| Centro de Desenvolvimento TechBase]]


    * [https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source Como criar o software KDE a partir da fonte]
    * [https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source Como criar o software KDE a partir dos fontes]


    * [https://community.kde.org/Get_Involved/development Como se envolver com a comunidade KDE]
    * [https://community.kde.org/Get_Involved/development Como se envolver com a comunidade KDE]

    Latest revision as of 16:44, 24 August 2020

    Other languages:

    O KDE Frameworks, atualmente versão 5 ou KF5, é uma coleção de 80 bibliotecas criadas sobre o Qt application framework e fornece tudo, desde classes de utilitário a E/S assíncronas e transparentes à rede, além de modelos e widgets de dados adicionais, até integração centralizada em desktop. Se o próprio Qt não fornecer uma certa funcionalidade ou recurso, é provável que exista um KDE framework para isso.

    Embora o KF5 sirva como os blocos de construção mais básicos do software KDE, eles podem ser usados por qualquer aplicativo Qtx, como qualquer biblioteca adicional do Qt de terceiros. Assim como qualquer outro software KDE, o KF5 usa e favorece o sistema de build do CMake, mas todos os frameworks também suportam o QMake. Muitas estruturas estão disponíveis em múltiplos sistemas operacionais desktop, como Linux e Windows, e estão disponíveis até no Android. Certifique-se de verificar a documentação de cada framework para suas plataformas suportadas.

    Garantias e Licença

    All KDE Frameworks follow strict quality standards and offer source and binary compatibility.

    Informação
    A versão atual do KDE Frameworks é 5.63.0. Por favor, consulte o release announcement para obter mais informações.

    Organização

    Cada um dos KDE Frameworks possui um Nível e um Tipo, como você verá na documentação da API. Embora não seja essencial para o uso dos frameworks, essa organização pode ajudar os desenvolvedores a determinar as dependências dos frameworks.

    As camadas agrupam os frameworks de acordo com o que eles 'linkam' durante a compilação.

    • Os Frameworks de nível 1 podem depender apenas das estruturas oficiais do Qt ou de outras bibliotecas do sistema;
    • Os Frameworks da camada 2 podem depender apenas das estruturas da camada 1, estruturas oficiais do Qt ou outras bibliotecas do sistema;
    • Os Frameworks de camada 3 podem depender apenas de outras estruturas de camada 3, estruturas de camada 2, estruturas de camada 1, estruturas oficiais de Qt ou outras bibliotecas de sistema.

    Os tipos, por outro lado, referem-se às dependências de tempo de execução dos frameworks:

    • Os Frameworks funcionais não podem ter dependências em tempo de execução. O KArchive, por exemplo, pode ser usado como está como uma biblioteca drop-in.
    • Os Frameworks de integração podem ter dependências opcionais em tempo de execução e visam integrar-se ao SO/Plataforma subjacente. O Solid precisa de outros componentes em tempo de execução para fornecer informações de hardware em diferentes plataformas.
    • Solutions têm dependências em tempo de execução obrigatórias para funcionar. O KIO, o Framework de E/S do KDE, exige que certos daemons ofereçam um sistema de arquivos virtual transparente à rede.

    Guia rápido

    Quão fácil é usar o KDE Frameworks 5? Tão fácil quanto usar qualquer widget Qt ou adicionar qualquer biblioteca C++ ao seu projeto. Você nem precisa deixar de usar o QMake se você achar mais fácil. Aqui está um exemplo muito rápido e direto de como é simples usar um framework.

    Nota
    O exemplo abaixo é escrito apenas para fins de demonstração e não reflete práticas ou convenções de codificação apropriadas. Para obter exemplos mais detalhados, consulte a seção Tutoriais.


    Etapa 1: Instale o Framework que você precisa

    Neste exemplo, usaremos o KDatePicker widget do KWidgetsAddons framework. No KDE Neon/Ubuntu/Debian, é tão simples quanto:

    sudo apt install libkf5widgetsaddons-dev
    

    Ajuste de acordo com o gerenciador de pacotes da sua distribuição Linux, é claro. Se você quiser a versão mais recente do framework e ela não estiver disponível na sua distribuição, será necessário obtê-la dos fontes(Git ou tarball) e compilá-la. Confira o guia prático na Comunidade KDE para compilar o software KDE a partir do fonte.

    Etapa 2: adicione o Framework ao seu projeto

    Adicione o nome do Framework, em letras maiúsculas, ao seu arquivo de projeto QMake, como faria com qualquer outro módulo Qt.

    TEMPLATE = app
    TARGET = kdatepicker-example
    
    QT += core widgets KWidgetsAddons
    
    SOURCES += main.cpp
    

    Se você já estiver usando o CMake como seu sistema de build preferido, também precisará usar os Extra CMake Modules criados pela comunidade KDE para fornecer módulos e macros para facilitar a localização e o link aos Frameworks.

    Etapa 3: Usar o Framework

    O KDatePicker, como muitos outros widgets do KDE Frameworks, se comporta como qualquer widget Qt. Como tal, você pode simplesmente inseri-los ou usá-los em projetos Qt sem nenhum problema. Aqui está um exemplo ilustrativo em que a seleção de uma data no widget de calendário exibe sua representação de sequência no label ao lado.

    #include <KDatePicker>
    
    #include <QApplication>
    #include <QLabel>
    #include <QHBoxLayout>
    
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
        QWidget* window = new QWidget;
    
        QLabel* dateLabel = new QLabel(QDate::currentDate().toString());
        KDatePicker* datePicker = new KDatePicker;
    
        QObject::connect(datePicker, &KDatePicker::dateSelected, [=] (const QDate &dateSelected) { dateLabel->setText(dateSelected.toString()); });
    
        QHBoxLayout* layout = new QHBoxLayout;
        layout->addWidget(dateLabel);
        layout->addWidget(datePicker);
    
        window->setLayout(layout);
        window->show();
    
        return app.exec();
    }
    

    Basta compilar o projeto normalmente e é isso! Bem-vindo ao maravilhoso mundo do software KDE!

    Exemplos de Frameworks

    Agora que você viu como é fácil adicionar os KDE Frameworks ao seu software, aqui está uma amostra dos vários frameworks e o que eles podem fazer por você.

    • Como o KDatePicker acima, o KWidgetsAddons oferece uma ampla variedade de widgets addons que vão além do que o próprio Qt oferece. Por outro lado, KCoreAddons inclui classes de utilitários não gráficos que ajudam a gerenciar processos filhos, criar arquivos de salvamento automático e criar factory-style plugins..
    • Sonnet adiciona verificação ortográfica em vários idiomas a qualquer objeto QTextEdit(realmente um QTextDocument) com suporte para diferentes backends ortográficos, enquanto KSyntaxHighighting estende o suporte de destaque de sintaxe do Qt com um formato de definição de sintaxe padronizada e expansível.
    • ThreadWeaver elimina as dores de um dos aspectos mais difíceis do desenvolvimento de aplicativos modernos: programação multithread.
    • KConfig permite que você tenha um sistema de configuração que funcione em várias plataformas, independentemente do formato de arquivo de backend real.O KPackage, por outro lado, pode ajudá-lo a estender seus programas com conteúdo instalado como plugins.
    • Se precisar incorporar um editor de texto avançado mas não quiser escrever um você mesmo, KTextEditor oferece todas as funcionalidades necessárias como biblioteca ou como um KPart incorporado.
    • Kirigami é como um framework dentro de um framework, fornecendo um rico conjunto de componentes Qt Quick para o desenvolvimento de uma nova geração de aplicativos que superam a divisão entre tamanhos de tela e form factors.
    • E, é claro, existe o Plasma framework que serve como base para as áreas de trabalho Plasma do KDE, tanto para desktops quanto móveis, fornecendo aos desenvolvedores os componentes básicos para a criação das interfaces principais do usuário, bem como applets (widgets) para execução nessas áreas de trabalho.


    Verifique a coleção completa dos 80 KDE Frameworks no site de documentação da API, juntamente com outras bibliotecas do KDE, você pode usar para desenvolver o próximo 'aplicativo matador', seja no Linux ou Windows, desktop ou móvel, e qualquer outra coisa.

    Links Importantes