# KDE Frameworks

KDE Frameworks é uma coleção de bibliotecas e frameworks de software prontamente disponíveis para quaisquer pilhas de software ou aplicativos baseados em Qt em vários sistemas operacionais. Apresentando soluções de funcionalidade frequentemente necessárias, como integração de hardware, suporte de formato de arquivo, elementos de controle gráfico adicionais, funções de plotagem, verificação ortográfica, a coleção serve como base tecnológica para KDE Plasma 5 e Aplicativos do KDE distribuídos sob a Licença Pública Geral Menor GNU (LGPL).

## Visão geral

O KDE Frameworks atual é baseado no Qt 5, que permite um uso mais amplo de QML, uma linguagem de programação declarativa mais simples baseada em JavaScript, para o design de interfaces de usuário. O mecanismo de renderização de gráficos usado pelo QML permite interfaces de usuário mais fluidas em diferentes dispositivos.
Desde a divisão da KDE Software Compilation em KDE Frameworks 5, KDE Plasma 5 e Aplicativos do KDE, cada subprojeto pode escolher seu próprio ritmo de desenvolvimento. O KDE Frameworks é lançado mensalmente e usa o git.
Deve ser possível instalar o KDE Frameworks 5 juntamente com o KDE Platform 4 para que os aplicativos possam usar qualquer um deles.

### Estabilidade da API e da ABI

Os lançamentos de plataformas são aqueles que iniciam uma série (número de versão X.0). Apenas essas versões principais têm permissão para quebrar a compatibilidade binária com o predecessor. Lançamentos nas séries menores (X.1, X.2, ...) garantirão a portabilidade binária (API & ABI). Isto significa, por exemplo, que o software desenvolvido para o KDE 3.0 funcionará em todas as (futuras) versões do KDE 3; entretanto, uma aplicação desenvolvida para o KDE 2 não tem garantia de poder fazer uso das bibliotecas do KDE 3. Os números das versões principais do KDE seguem principalmente o ciclo de lançamento da Qt, o que significa que o KDE SC 4 é baseado na Qt 4, enquanto que o KDE 3 foi baseado na Qt 3.

### Sistemas operacionais suportados

O repositório de cada framework deve conter um arquivo denominado metainfo.yaml. Este arquivo documenta o mantenedor do framework, o tipo, o sistema operacional suportado e outras informações. As plataformas atualmente suportadas são Linux, Microsoft Windows, macOS e Android.

## Arquitetura de software
### Estrutura

Os Frameworks têm uma estrutura de dependência clara, dividida em "categorias" e "tiers". As "categorias" referem-se às dependências de tempo de execução:
* Os elementos funcionais não têm dependências de tempo de execução.
* Integração designa o código que pode exigir dependências de tempo de execução para integração, dependendo do que o sistema operacional ou a plataforma oferece.
* As soluções têm dependências de tempo de execução obrigatórias.
Os "Tiers" referem-se às dependências de tempo de compilação em outros Frameworks.
* Frameworks Tier 1 não têm dependências dentro de Frameworks e só precisam de Qt e outras bibliotecas relevantes.
* Frameworks Tier 2 podem depender apenas do Tier 1.
* Frameworks Tier 3 podem depender de outros Frameworks Tier 3, bem como do Tier 2 e do Tier 1.

### Componentes

O pacote KDE Frameworks consiste em mais de 70 pacotes. Eles existiam como um único pacote grande, chamado kdelibs, em KDE SC 4. O Kdelibs foi dividido em vários frameworks individuais, alguns dos quais não são mais parte do KDE, mas foram integrados ao Qt 5.2.
KDE Frameworks é agrupado em quatro tiers diferentes de acordo com a dependência de outras bibliotecas. Frameworks tier 1 dependem apenas do Qt ou de outras bibliotecas do sistema. Frameworks tier 2 podem depender de bibliotecas do tier 1, Qt e/ou outras bibliotecas do sistema e assim por diante.
Lista completa de frameworks :
| Nome | Tier | git | Descrição |
| Frameworkintegration | 4 | frameworkintegration.git | Framework Integration é um conjunto de plug-ins responsáveis por uma melhor integração de aplicativos Qt quando executados em um espaço de trabalho KDE Plasma. Os aplicativos não precisam ser ligados a ele diretamente. A biblioteca KF5Style fornece integração com as configurações do espaço de trabalho KDE Plasma para estilos Qt. Derive seu estilo Qt do KStyle para herdar automaticamente várias configurações do espaço de trabalho KDE Plasma, proporcionando uma experiência de usuário consistente. Por exemplo, isso garantirá uma configuração consistente de ativação de clique único ou duplo e o uso de ícones temáticos padrão. |
| KActivities | 3 | kactivities.git | Componentes principais para o gerenciador de atividades do KDE. |
| KApiDox | 4 | kapidox.git | Scripts e dados para construir a documentação da API em um formato e estilo padrão. Este framework contém scripts e dados para construir a documentação da API (dox) em um formato e estilo padrão. A ferramenta Doxygen é usada para fazer a extração e formatação da documentação real, mas este framework fornece um script wrapper para tornar a geração da documentação mais conveniente (incluindo configurações de leitura do framework de destino ou outro módulo) e um modelo padrão para a documentação gerada. |
| KArchive | 1 | karchive.git | Classes para facilitar a leitura, criação e manipulação de formatos de "arquivo", incluindo zip e tar. |
| KAuth | 2 | kauth.git | Fornece uma maneira conveniente e integrada ao sistema para descarregar ações que precisam ser executadas como um usuário privilegiado para pequenos utilitários auxiliares. |
| KBookmarks | 3 | kbookmarks.git | KBookmarks permite acessar e manipular favoritos armazenados usando o "formato XBEL". O uso mais comum para favoritos são navegadores da web, mas isso também pode ser útil em qualquer aplicativo onde arquivos locais ou URLs podem ser salvos como favoritos. |
| KCMUtils | 3 | kcmutils.git | Utilitários, i.a. KSettings, para os módulos de Configurações do Sistema do KDE. KCMUtils fornece várias classes para trabalhar com KCModules. KCModules podem ser criados com o framework KConfigWidgets. |
| KCodecs | 1 | kcodecs.git | KCodecs é uma biblioteca de codificação de strings, que fornece uma coleção de métodos para manipular strings usando várias codificações. Ele pode determinar automaticamente o conjunto de caracteres de uma string, traduzir entidades XML, validar endereços de e-mail e encontrar codificações por nome de uma forma mais tolerante do que QTextCodec (útil, por exemplo, para dados vindos da Internet). |
| KCompletion | 2 | kcompletion.git | Framework de completação de string, incluindo lineedit e combobox habilitados para completação. Ao digitar nomes de arquivo, endereços de e-mail e outro texto onde o usuário geralmente deseja selecionar a partir de dados existentes (incluindo o que ele digitou anteriormente) em vez de inserir algo totalmente original, os usuários costumam achar útil se eles só precisam digitar os primeiros caracteres, e em seguida, fazer com que o aplicativo ofereça a eles um conjunto de opções ou tentarem terminar o que eles estavam digitando. Clientes de e-mail, shells e diálogos de "abrir arquivo" geralmente fornecem essa funcionalidade. Este framework ajuda a implementar isso em aplicativos baseados em Qt. Você pode usar um dos widgets prontos para conclusão fornecidos por este framework ou integrá-lo a outros widgets de seu aplicativo diretamente. A maneira mais fácil de começar é usar um KComboBox, KHistoryComboBox ou KLineEdit. Se você deseja integrar a completação a outras partes da interface do usuário, você pode usar o KCompletion para gerenciar e selecionar as completações possíveis. |
| KConfig | 1 | kconfig.git | Configurações de aplicativos independentes de plataforma persistentes compostas por duas partes: KConfigCore e KConfigGui. O KConfigCore fornece acesso aos próprios arquivos de configuração, o que significa que também gera a configuração em XML. O KConfigGui fornece uma maneira de conectar elementos de controle gráfico (widgets) à configuração para que sejam inicializados automaticamente a partir da configuração e propaguem automaticamente suas alterações para seus respectivos arquivos de configuração. |
| KConfigWidgets | 3 | kconfigwidgets.git | Elementos de controle gráfico (widgets) para diálogos de configuração. Widgets para diálogos de configuração. KConfigWidgets fornece classes fáceis de usar para criar diálogos de configuração, bem como um conjunto de widgets que usa KConfig para armazenar suas configurações. |
| KCoreAddons | 1 | kcoreaddons.git | Utilitários para a funcionalidade principal do aplicativo e acesso ao sistema operacional. Biblioteca adicional Qt com uma coleção de utilitários não-GUI. KCoreAddons fornece classes construídas em cima do QtCore para realizar várias tarefas, como manipulação de tipos MIME, salvamento automático de arquivos, criação de arquivos de backup, geração de sequências aleatórias, execução de manipulações de texto como substituição de macro, acesso a informações do usuário e muito mais. |
| KCrash | 2 | kcrash.git | Fornece suporte para interceptar e lidar com travamentos de aplicativos. |
| KDBusAddons | 1 | kdbusaddons.git | KDBusAddons fornece classes de conveniência para DBus em cima de QtDBus, bem como uma API para criar módulos KDED. |
| KDeclarative | 3 | kdeclarative.git | Addon para Qt declarative |
| KDED | 3 | kded.git | KDED significa KDE Daemon, o daemon central dos espaços de trabalho do KDE. O KDED é executado em segundo plano e executa uma série de pequenas tarefas. Algumas dessas tarefas são integradas, outras são iniciadas sob demanda. |
| KDesignerPlugin | 3 | kdeclarative.git | Este framework fornece plug-ins para o Qt Designer que permitem exibir os widgets fornecidos por vários KDE frameworks, bem como um utilitário (kgendesignerplugin) que pode ser usado para gerar outros plug-ins a partir de arquivos de descrição no estilo ini. |
| KDESu | 3 | kdesu.git | KDESU (KDE super user) fornece uma interface de usuário para executar comandos do shell com privilégios de root. Ele fornece funcionalidade para construir front ends de interfaces gráficas para programas em modo de console (que solicitam senha). Por exemplo, o kdesu e o kdessh usam-no para fazer interface com su e ssh respectivamente. |
| KDEWebkit | 3 | kdewebkit.git | Integração do mecanismo de renderização HTML WebKit. A biblioteca KDEWebkit fornece integração ao KDE da biblioteca QtWebKit. Se você estiver usando o QtWebKit em seu aplicativo KDE, é recomendável usar essa camada em vez de usar as classes QtWebKit diretamente. Em particular, você deve usar KWebView no lugar de QWebView, KGraphicsWebView no lugar de QGraphicsWebView e KWebPage no lugar de QWebPage. |
| KDNSSDFramework | 2 | kdnssd.git | KDNSSD é uma biblioteca para lidar com o Protocolo de Descoberta de Serviço baseado em DNS (DNS-SD), a camada de [Zeroconf] (http://www.zeroconf.org) que permite serviços de rede, como impressoras, serem descobertos sem qualquer intervenção do usuário ou infraestrutura centralizada. |
| KDocTools | 2 | kdoctools.git | Fornece ferramentas para gerar documentação em vários formatos a partir de arquivos DocBook. |
| KEmoticons | 3 | kemoticons.git | Fornece temas de emoticons, bem como classes auxiliares para converter automaticamente emoticons de texto em emoticons gráficos. |
| KGlobalAccel | 1 | kglobalaccel.git | O KGlobalAccel permite que você tenha atalhos de teclado globais (aceleradores) que são independentes da janela em foco. Ao contrário dos atalhos regulares, a janela do aplicativo não precisa de foco para serem ativados. |
| KGuiAddons | 1 | kguiaddons.git | Addons de interfaces gráficas de usuário do KDE; Utilitários para interfaces gráficas de usuário; Os addons de interfaces gráficas de usuário do KDE fornecem utilitários para interfaces gráficas de usuário nas áreas de cores, fontes, texto, imagens, entrada de teclado. |
| KHTML | 4 | khtml.git | KHTML é o mecanismo de renderização de HTML do qual o WebKit foi bifurcado. É baseado na tecnologia KParts e usa KJS para suporte a JavaScript. |
| Ki18n | 1 | ki18n.git | Internacionalização de texto da IU baseada em gettext do KDE. KI18n fornece funcionalidade para internacionalizar o texto da interface do usuário em aplicativos, com base no sistema de tradução GNU Gettext. Ele envolve a funcionalidade do Gettext padrão, para que os programadores e tradutores possam usar as ferramentas e fluxos de trabalho familiares do Gettext. O KI18n também fornece funcionalidade adicional, tanto para programadores quanto para tradutores, o que pode ajudar a alcançar uma maior qualidade geral de fonte e texto traduzido. Isso inclui captura de argumento, marcação personalizável e script de tradução. |
| KIconThemes | 3 | kiconthemes.git | Esta biblioteca contém classes para melhorar o manuseio de ícones em aplicativos que usam o KDE Frameworks. |
| KIdleTime | 1 | kidletime.git | Módulo de integração para detecção de tempo ocioso. |
| KImageFormats | 1 | kimageformats.git | Plug-ins para permitir que o QImage suporte formatos de arquivo extras. Este framework fornece plug-ins de formato de imagem adicionais para QtGui. Como tal, não é necessário para a compilação de qualquer outro software, mas pode ser um requisito de tempo de execução para software baseado em Qt para suportar certos formatos de imagem. Os seguintes formatos de imagem têm suporte somente leitura: GIMP (xcf) OpenEXR (exr) Documentos do Adobe Photoshop (psd) Sun Raster (ras) Os seguintes formatos de imagem têm suporte de leitura e gravação: Encapsulated PostScript (eps) Personal Computer Exchange (pcx) Imagens SGI (rgb, rgba, sgi, bw) Autodesk Softimage (pic) Targa (tga): suporta mais formatos do que a versão do Qt XView (xv) |
| KInit | 3 | kinit.git | O kdeinit é um lançador de processos, que inicia processos bifurcando e depois carregando uma biblioteca dinâmica que deve conter uma função 'kdemain (...)'. O kdeinit acelera o início de aplicativos nos espaços de trabalho do KDE; O kdeinit está vinculado a todas as bibliotecas de que um aplicativo KDE padrão precisa. Com essa técnica, iniciar um aplicativo torna-se muito mais rápido porque agora apenas o próprio aplicativo precisa ser vinculado, enquanto, caso contrário, tanto o aplicativo quanto todas as bibliotecas que ele usa precisam ser vinculados. |
| KIO | 3 | kio.git | Acesso transparente de rede a arquivos e dados. Esta estrutura implementa quase todas as funções de gerenciamento de arquivos de que você precisará. O Dolphin e a caixa de diálogo de arquivos do KDE também usa isso para fornecer o gerenciamento de arquivos habilitado para rede. |
| Kirigami | 1 | kirigami.git | Um conjunto de plug-ins do QtQuick para construir interfaces de usuário com base nas diretrizes de UX do KDE |
| KItemModels | 1 | kitemmodels.git | Conjunto de modelos de itens que estendem o framework de visão de modelo Qt. KItemModels fornece os seguintes modelos: KBreadcrumbSelectionModel - Seleciona os pais dos itens selecionados para criar breadcrumbs (estrutura de navegação) KCheckableProxyModel - Adiciona uma capacidade verificável a um modelo de origem KConcatenateRowsProxyModel - Concatena linhas de vários modelos de origem KDescendantsProxyModel - Modelo de Proxy para reestruturar uma Árvore em uma lista KExtraColumnsProxyModel - Adiciona colunas após as colunas existentes KLinkItemSelectionModel - Compartilhe uma seleção em várias visualizações que não têm o mesmo modelo de origem KModelIndexProxyMapper - Mapeamento de índices e seleções por meio de modelos de proxy KRearrangeColumnsProxyModel - pode reordenar e ocultar colunas do modelo de origem KRecursiveFilterProxyModel - Filtragem recursiva de modelos KSelectionProxyModel - Um Modelo de Proxy que apresenta um subconjunto de seu modelo de origem aos observadores |
| KItemViews | 1 | kitemviews.git | Conjunto de visualizações de itens que estendem o framework de visualização de modelo da Qt. KItemViews inclui um conjunto de visualizações, que pode ser usado com modelos de itens. Inclui visualizações para categorizar listas e adicionar filtros de pesquisa a listas simples e hierárquicas. |
| KJobWidgets | 2 | kjobwidgets.git | KJobWIdgets fornece widgets para mostrar o progresso de trabalhos assíncronos. |
| KJS | 1 | kjs.git | KJS fornece um interpretador compatível com ECMAScript. O padrão ECMA é baseado em linguagens de script bem conhecidas, como JavaScript da Netscape e JScript da Microsoft. |
| KJSEmbed | 3 | kjsembed.git | KSJEmbed fornece um método de vinculação de objetos JavaScript a QObjects, para que você possa criar scripts em seus aplicativos. |
| KMediaPlayer | 3 | kmediaplayer.git | Deprecado: Interface para tocador de mídia KParts. KMediaPlayer baseia-se no framework KParts para fornecer uma interface comum para KParts que pode reproduzir arquivos de mídia. Este framework é um auxiliar para portabilidade. Não é recomendado para novos projetos, e projetos existentes que o usam são aconselhados a migrar dele e usar KParts plano em seu lugar. |
| KNewStuff | 3 | knewstuff.git | Framework para baixar e compartilhar dados adicionais de aplicativo. A biblioteca KNewStuff implementa o compartilhamento colaborativo de dados para aplicativos. Ele usa libattica para suportar a especificação Open Collaboration Services. Attica é uma biblioteca Qt que implementa a API Open Collaboration Services versão 1.6. Ela facilita o acesso aos serviços, como consulta de informações sobre pessoas e conteúdos. |
| KNotifications | 3 | knotifications.git | Solução com abstração para notificações do sistema. |
| KNotifyConfig | 3 | knotifyconfig.git | Módulo para configuração do KNotify. |
| KParts | 3 | kparts.git | A biblioteca KParts implementa o framework para as partes do KDE. Um componente individual da interface do usuário é chamado de KPart e é um widget elaborado com uma interface do usuário definida em termos de ações (itens de menu, ícones da barra de ferramentas). KParts são análogas aos componentes Bonobo no GNOME e controles ActiveX no Component Object Model da Microsoft. O Konsole está disponível como uma KPart e é usado em aplicativos como o Konqueror e Kate. Exemplos de uso da KParts: Konqueror usa a parte Okular para exibir documentos Konqueror usa a parte Dragon Player para reproduzir multimídia Kontact incorpora aplicativos kdepim Kate e outros editores usam o componente de editor katepart Vários aplicativos usam a KPart Konsole para incorporar um terminal Documentação adicional: Creating and Using Components (KParts) (from KDE) Writing Plugins For KDE Applications (from KDE) |
| KPlotting | 1 | kplotting.git | KPlotWidget é uma classe derivada de QWidget que fornece uma classe base virtual para fácil plotagem de dados. A ideia por trás do KPlotWidget é que você só precisa especificar as informações em "unidades de dados"; ou seja, as unidades naturais dos dados sendo plotados. KPlotWidget converte tudo automaticamente em unidades de pixel da tela. KPlotWidget desenha os eixos X e Y com marcas e rótulos de escala. Ele determina automaticamente quantas marcas de verificação usar e onde elas devem estar, com base nos limites de dados especificados para o gráfico. Você altera os limites chamando `setLimits(double x1, double x2, double y1, double y2)`. Os dados a serem plotados são armazenados usando a classe KPlotObject. KPlotObject consiste em uma QList de QPointFs, cada um especificando as coordenadas X,Y de um ponto de dados. KPlotObject também especifica o "tipo" de dados a serem plotados (POINTS ou CURVE ou POLYGON ou LABEL) |
| KPty | 2 | kpty.git | Interface com dispositivos pseudo-terminais. Esta biblioteca fornece primitivos para interface com dispositivos de pseudoterminal, bem como uma classe derivada de KProcess para executar processos filho e se comunicar com eles usando um pty. |
| Kross | 3 | kross.git | Incorporação de scripts em aplicativos. Kross é uma ponte de script para incorporar a funcionalidade de script em um aplicativo. Ele suporta QtScript como back-end de interpretador de scripts. O núcleo do Kross fornece o framework para lidar de forma transparente com back-ends de interpretador e oferece funcionalidade abstrata para lidar com scripts. |
| KRunner | 3 | krunner.git | Framework para fornecer diferentes ações em uma consulta de string. Framework para corredores do Plasma. O espaço de trabalho do Plasma oferece um aplicativo chamado KRunner que, entre outras coisas, permite digitar em uma área de texto, o que faz com que várias ações e informações que correspondem ao texto apareçam à medida que o texto é digitado. Uma aplicação para isso é o corredor universal que você pode iniciar com ALT+F2. |
| KService | 3 | kservice.git | O KService fornece um framework de plug-in para lidar com serviços de área de trabalho. Os serviços podem ser aplicativos ou bibliotecas. Eles podem ser vinculados a tipos MIME ou manipulados por código específico do aplicativo. |
| KSyntaxHighlighting | 1 | syntax-highlighting.git | Esta é uma implementação independente do mecanismo de realce de sintaxe do Kate. Ele serve como um bloco de construção para editores de texto, bem como para renderização simples de texto destacado (por exemplo, como HTML), suportando tanto a integração com um editor personalizado quanto uma subclasse QSyntaxHighlighter pronta para usar. |
| KTextEditor | 3 | ktexteditor.git | O KTextEditor fornece um poderoso componente de editor de texto que você pode incorporar em seu aplicativo, como uma KPart ou usando a biblioteca KF5::TextEditor (se precisar de mais controle). O componente editor de texto contém muitos recursos úteis, desde destaque de sintaxe e recuo automático até suporte avançado de script, tornando-o adequado para tudo, desde um simples editor de arquivo de texto incorporado a um IDE avançado. |
| KTextWidgets | 3 | ktextwidgets.git | KTextWidgets fornece widgets para exibir e editar texto. Ele suporta rich text e também texto simples. |
| KUnitConversion | 2 | kunitconversion.git | KUnitConversion fornece funções para converter valores em diferentes unidades físicas. Ele suporta a conversão de diferentes prefixos (por exemplo, quilo, mega, giga), bem como a conversão entre diferentes sistemas de unidades (por exemplo, litros, galões). As seguintes áreas são suportadas: Aceleração Ângulo Área Comprimento Condutividade térmica Corrente elétrica Densidade Eficiência do combustível Energia Fluxo Térmico Força Frequência Geração Térmica Massa Moeda Potência Pressão Resistência elétrica Temperatura Tempo Tensão elétrica Velocidade Volume |
| KWalletFramework | 3 | kwallet.git | Armazenamento seguro em toda a área de trabalho para senhas. Este framework contém dois componentes principais: Interface para o KWallet, o armazenamento seguro de toda a área de trabalho para senhas em espaços de trabalho do KDE. O kwalletd usado para armazenar com segurança as senhas nos espaços de trabalho do KDE. |
| KWayland | 1 | kwayland.git | KWayland é a biblioteca do KDE usada para implementar o suporte ao Wayland em aplicativos do KDE, ele atende às necessidades além do que o QtWayland oferece. Todos os aplicativos do KDE em uma sessão do plasma no Wayland usam esta biblioteca e o LXQt talvez possa usá-la também. O KWayland faz parte do KDE Frameworks desde 5.22 (maio de 2016); ele foi distribuído anteriormente como parte do KDE Plasma 5. |
| KWidgetsAddons | 1 | kwidgetsaddons.git | Addon com várias classes em cima do QtWidgets. Se estiver portando aplicativos a partir da biblioteca "kdeui" da KDE Platform 4, você encontrará muitas de suas classes aqui. São fornecidas classes de ação que podem ser adicionadas a barras de ferramentas ou menus, uma ampla gama de widgets para selecionar caracteres, fontes, cores, ações, datas e horas ou tipos de MIME, bem como diálogos de plataforma para páginas de configuração, caixas de mensagem, e solicitações de senha. Outros widgets e classes podem ser encontrados em outros frameworks do KDE. |
| KWindowSystem | 1 | kwindowsystem.git | Permite interagir com o sistema de janelas. Ele fornece uma NETRootInfo para acessar o estado global (tudo o que está definido na janela raiz) e NETWinInfo para todas as informações sobre uma janela específica. As classes possuem um gerenciador de janelas e perspectiva do cliente. Esta é a base que alimenta o KWin e várias partes do shell gráfico, como o gerenciador de tarefas. Além dessas classes específicas do X11, temos uma API conveniente KWindowInfo e KWindowSystem que fornece uma API independente do sistema de janelas para nossos aplicativos. |
| KXMLGUI | 3 | kxmlgui.git | KXMLGUI fornece um framework para gerenciar as ações do menu e da barra de ferramentas de uma forma abstrata. As ações são configuradas por meio de uma descrição XML e ganchos no código do aplicativo. O framework suporta a fusão de várias descrições, por exemplo, para integrar ações de plug-ins. O KXMLGui usa a funcionalidade de autorização Kiosk do KConfig (consulte o namespace KAuthorized nesse framework). Notavelmente, as instâncias de QAction adicionadas a KActionCollection são desabilitadas se KAuthorized::authorizeAction relatar que não estão autorizadas. Os itens no menu de ajuda padrão (KHelpMenu) também podem ser desabilitados com base nas configurações do Kiosk, e a edição da barra de ferramentas pode ser restrita. Veja a documentação do KActionCollection, KHelpMenu e KToolBar para mais informações. |
| Plasma-framework | 3 | plasma-framework.git | Bibliotecas básicas, componentes de tempo de execução e ferramentas dos espaços de trabalho do KDE Plasma baseados em KF5 e Qt5. O framework do plasma fornece o seguinte: Componentes QML org.kde.plasma.core: ligações para a funcionalidade libplasma, como DataEngine e FrameSvg org.kde.plasma.components: componentes gráficos para itens comuns, como botões, edições de linha, barras de tabulação e assim por diante. Subconjunto compatível dos componentes do MeeGo usados no N9 org.kde.plasma.extras: Componentes gráficos extras que estendem org.kde.plasma.components, mas não estão na API padrão org.kde.plasma.plasmoid: Propriedades anexadas para manipular o miniaplicativo ou contenção atual libplasma: uma biblioteca em C++ que fornece: renderização de temas SVG carregamento de arquivos de uma determinada estrutura de sistema de arquivos: pacotes acesso a dados por meio de mecanismo de dados carregamento da estrutura do plugin do espaço de trabalho: contenções e miniaplicativos Mecanismos de script: fornece suporte para criar miniaplicativos ou contenções em várias linguagens de script |
| Prison | 1 | prison.git | Prison é uma camada/biblioteca de abstração de código de barras baseada em Qt e fornece acesso uniforme para geração de códigos de barras com dados. |
| Solid | 1 | solid.git | Solid fornece uma maneira de consultar e interagir com o hardware, independentemente do sistema operacional subjacente. Ele fornece os seguintes recursos para desenvolvedores de aplicativos: Descoberta de Hardware Gerenciamento de Energia Gerenciamento de Rede Gerenciamento de Tela faz uso do KScreen um novo componente do KDE Plasma 5 |
| Sonnet | 1 | sonnet.git | Sonnet é uma biblioteca de verificação ortográfica baseada em plug-in para aplicativos baseados em Qt. Ele suporta vários plug-ins diferentes, incluindo HSpell, Enchant, ASpell e HUNSPELL. Ele também oferece suporte à detecção automática de idioma, com base em uma combinação de diferentes algoritmos. A maneira mais simples de usar o Sonnet em seu aplicativo é usar a classe SpellCheckDecorator em sua QTextEdit. |
| Syndication | 2 | syndication.git | Syndication é uma biblioteca analisadora de RSS/Atom. |
| ThreadWeaver | 1 | threadweaver.git | ThreadWeaver é uma fila de Trabalhos. Ele executa trabalhos em threads que gerencia internamente. |

#### Pacotes de software

As distribuições Linux usam algum sistema de gerenciamento de pacotes para empacotar o software que distribuem. O Debian, por exemplo, distribui KGlobalAccel sob o nome de pacote libkf5globalaccel, enquanto o Fedora o distribui sob o nome kf5-kglobalaccel.

## Histórico de lançamentos

O lançamento do 5.0 foi precedido por technology preview, dois lançamentos alfa, e três alnçamentos beta.
Lançamentos do Frameworks 5 :
| Versão | Data | Notas |
| Versão antiga, já não mantida: 5.0 | 7 de julho de 2014 | Lançamento inicial, requer Qt 5.2. |
| Versão antiga, já não mantida: 5.1 | 7 de agosto de 2014 | |
| Versão antiga, já não mantida: 5.2 | 12 de setembro de 2014 | |
| Versão antiga, já não mantida: 5.3 | 7 de outubro de 2014 | |
| Versão antiga, já não mantida: 5.4 | 6 de novembro de 2014 | |
| Versão antiga, já não mantida: 5.5 | 11 de dezembro de 2014 | |
| Versão antiga, já não mantida: 5.6 | 8 de janeiro de 2015 | Novos frameworks: KPackage e NetworkManagerQt |
| Versão antiga, já não mantida: 5.7 | 14 de fevereiro de 2015 | |
| Versão antiga, já não mantida: 5.8 | 13 de março de 2015 | Novos frameworks: KPeople e KXmlRpcClient |
| Versão antiga, já não mantida: 5.9 | 10 de abril de 2015 | Novo framework: ModemManagerQt |
| Versão antiga, já não mantida: 5.10 | 8 de maio de 2015 | |
| Versão antiga, já não mantida: 5.11 | 12 de junho de 2015 | Novo framework: BlueZ-Qt |
| Versão antiga, já não mantida: 5.12 | 10 de julho de 2015 | |
| Versão antiga, já não mantida: 5.13 | 12 de agosto de 2015 | Novos frameworks: Baloo (substitui NEPOMUK) e KFileMetaData, agora requer Qt 5.3. |
| Versão antiga, já não mantida: 5.14 | 11 de setembro de 2015 | |
| Versão antiga, já não mantida: 5.15 | 10 de outubro de 2015 | |
| Versão antiga, já não mantida: 5.16 | 13 de novembro de 2015 | |
| Versão antiga, já não mantida: 5.17 | 12 de dezembro de 2015 | |
| Versão antiga, já não mantida: 5.18 | 9 de janeiro de 2016 | |
| Versão antiga, já não mantida: 5.19 | 13 de fevereiro de 2016 | |
| Versão antiga, já não mantida: 5.20 | 13 de março de 2016 | |
| Versão antiga, já não mantida: 5.21 | 9 de abril de 2016 | Novo framework: KActivities-stats, agora requer Qt 5.4. |
| Versão antiga, já não mantida: 5.22 | 15 de maio de 2016 | Novo framework: KWayland |
| Versão antiga, já não mantida: 5.23 | 13 de junho de 2016 | |
| Versão antiga, já não mantida: 5.24 | 9 de julho de 2016 | |
| Versão antiga, já não mantida: 5.25 | 13 de agosto de 2016 | Agora requer Qt 5.5 ou acima. |
| Versão antiga, já não mantida: 5.26 | 10 de setembro de 2016 | |
| Versão antiga, já não mantida: 5.27 | 8 de outubro de 2016 | |
| Versão antiga, já não mantida: 5.28 | 15 de novembro de 2016 | Novo framework: KSyntaxHighlighting |
| Versão antiga, já não mantida: 5.29 | 12 de dezembro de 2016 | Novo framework: Prison |
| Versão antiga, já não mantida: 5.30 | 14 de janeiro de 2017 | Adiciona suporte do KNewStuff para KPackage |
| Versão antiga, já não mantida: 5.31 | 11 de fevereiro de 2017 | Muitos módulos agora têm ligações para Python, agora requer Qt 5.6 ou acima |
| Versão antiga, já não mantida: 5.32 | 11 de março de 2017 | |
| Versão antiga, já não mantida: 5.33 | 8 de abril de 2017 | |
| Versão antiga, já não mantida: 5.34 | 13 de maio de 2017 | |
| Versão antiga, já não mantida: 5.35 | 1 de junho de 2017 | |
| Versão antiga, já não mantida: 5.36 | 8 de julho de 2017 | |
| Versão antiga, já não mantida: 5.37 | 13 de agosto de 2017 | Novo framework: Kirigami, agora requer Qt 5.7 ou acima |
| Versão antiga, já não mantida: 5.38 | 9 de setembro de 2017 | |
| Versão antiga, já não mantida: 5.39 | 14 de outubro de 2017 | |
| Versão antiga, já não mantida: 5.40 | 11 de novembro de 2017 | |
| Versão antiga, já não mantida: 5.41 | 10 de dezembro de 2017 | |
| Versão antiga, já não mantida: 5.42 | 13 de janeiro de 2018 | |
| Versão antiga, já não mantida: 5.43 | 12 de fevereiro de 2018 | Novos frameworks: KHolidays e Purpose |
| Versão antiga, já não mantida: 5.44 | 10 de março de 2018 | |
| Versão antiga, já não mantida: 5.45 | 14 de abril de 2018 | Requer Qt 5.8 ou acima |
| Versão antiga, já não mantida: 5.46 | 12 de maio de 2018 | |
| Versão antiga, já não mantida: 5.47 | 9 de junho de 2018 | |
| Versão antiga, já não mantida: 5.48 | 15 de julho de 2018 | |
| Versão antiga, já não mantida: 5.49 | 11 de agosto de 2018 | |
| Versão antiga, já não mantida: 5.50 | 8 de setembro de 2018 | Novo framework: Syndication |
| Versão antiga, já não mantida: 5.51 | 15 de outubro de 2018 | |
| Versão antiga, já não mantida: 5.52 | 10 de novembro de 2018 | |
| Versão antiga, já não mantida: 5.53 | 9 de dezembro de 2018 | Requer Qt 5.9 ou acima |
| Versão antiga, já não mantida: 5.54 | 12 de janeiro de 2019 | |
| Versão antiga, já não mantida: 5.55 | 9 de fevereiro de 2019 | Requer Qt 5.10 ou acima |
| Versão antiga, já não mantida: 5.56 | 9 de março de 2019 | |
| Versão antiga, já não mantida: 5.57 | 13 de abril de 2019 | |
| Versão antiga, já não mantida: 5.58 | 13 de maio de 2019 | |
| Versão antiga, já não mantida: 5.59 | 8 de junho de 2019 | |
| Versão antiga, já não mantida: 5.60 | 13 de julho de 2019 | Requer Qt 5.11 ou acima |
| Versão antiga, já não mantida: 5.61 | 10 de agosto de 2019 | |
| Versão antiga, já não mantida: 5.62 | 14 de setembro de 2019 | |
| Versão antiga, já não mantida: 5.63 | 12 de outubro de 2019 | Adicionados KCalendarCore e KContacts |
| Versão antiga, já não mantida: 5.64 | 10 de novembro de 2019 | |
| Versão antiga, já não mantida: 5.65 | 14 de dezembro de 2019 | Adicionado KQuickCharts, agora requer Qt 5.12 ou acima |
| Versão antiga, já não mantida: 5.66 | 11 de janeiro de 2020 | |
| Versão antiga, já não mantida: 5.67 | 8 de fevereiro de 2020 | |
| Versão antiga, já não mantida: 5.68 | 15 de março de 2020 | |
| Versão antiga, já não mantida: 5.69 | 5 de abril de 2020 | |
| Versão antiga, já não mantida: 5.70 | 9 de maio de 2020 | |
| Versão antiga, já não mantida: 5.71 | 13 de junho de 2020 | |
| Versão antiga, já não mantida: 5.72 | 11 de julho de 2020 | Adicionado KDAV |
| Versão antiga, já não mantida: 5.73 | 8 de agosto de 2020 | |
| Versão antiga, já não mantida: 5.74 | 12 de setembro de 2020 | |
| Versão antiga, já não mantida: 5.75 | 10 de outubro de 2020 | |
| Versão antiga, já não mantida: 5.76 | 7 de novembro de 2020 | |
| Versão antiga, já não mantida: 5.77 | 12 de dezembro de 2020 | Requer Qt 5.13 ou acima |
| Versão antiga, já não mantida: 5.78 | 9 de janeiro de 2021 | Requer Qt 5.14 ou acima |
| Versão antiga, já não mantida: 5.79 | 12 de fevereiro de 2021 | |
| Versão antiga, já não mantida: 5.80 | 13 de março de 2021 | |
| Versão antiga, já não mantida: 5.81 | 10 de abril de 2021 | |
| Versão antiga, já não mantida: 5.82 | 8 de maio de 2021 | Requer Qt 5.15 ou acima |
| Versão antiga, já não mantida: 5.83 | 12 de junho de 2021 | |
| Versão antiga, já não mantida: 5.84 | 10 de julho de 2021 | |
| Versão antiga, já não mantida: 5.85 | 13 de agosto de 2021 | |
| Versão antiga, já não mantida: 5.86 | 11 de setembro de 2021 | |
| Versão antiga, já não mantida: 5.87 | 9 de outubro de 2021 | |
| Versão antiga, já não mantida: 5.88 | 13 de novembro de 2021 | |
| Versão antiga, já não mantida: 5.89 | 11 de dezembro de 2021 | |
| Versão antiga, já não mantida: 5.90 | 8 de janeiro de 2022 | |
| Versão antiga, já não mantida: 5.91 | 13 de fevereiro de 2022 | |
| Versão antiga, já não mantida: 5.92 | 12 de março de 2022 | |
| Versão antiga, já não mantida: 5.93 | 9 de abril de 2022 | |
| Versão antiga, já não mantida: 5.94 | 14 de maio de 2022 | |
| Versão antiga, já não mantida: 5.95 | 12 de junho de 2022 | |
| Versão antiga, já não mantida: 5.96 | 9 de julho de 2022 | |
| Versão antiga, já não mantida: 5.97 | 14 de agosto de 2022 | |
| Versão antiga, já não mantida: 5.98 | 12 de setembro de 2022 | |
| Versão estável atual: 5.99 | 9 de outubro de 2022 | |
| Lançamento futuro: 5.100 | | |
| Legenda:Versão antigaVersão mais antiga, ainda mantidaVersão mais recenteVersão de prévia mais recenteLançamento futuro |||

## História

O código-fonte do KDE Frameworks existe desde o KDElibs 1. O primeiro lançamento como KDE Frameworks foi com a versão 5, para contabilizar o fato de que a base de código foi a da plataforma KDE versão 4 (a única versão principal da plataforma KDE).
A transição da Plataforma KDE para o KDE Frameworks começou em agosto de 2013, guiada pelos principais colaboradores técnicos do KDE.
Após o lançamento inicial do KDE Frameworks 5.0, os desenvolvedores se concentraram em adicionar novos recursos aos componentes do KDE Frameworks 5, um exemplo sendo melhor integração do Firefox ao KDE.
A principal melhoria do Frameworks 5 é sua modularização. Nas versões anteriores do KDE, as bibliotecas eram agrupadas como um único pacote grande. No Frameworks, as bibliotecas foram divididas em pacotes individuais menores. Isso facilita a utilização das bibliotecas por outro software baseado em Qt, uma vez que as dependências podem ser mantidas no mínimo.
Enquanto o KDE 4 foi baseado na versão 4 do kit de ferramentas de widget Qt, o Frameworks 5 é baseado na versão 5.

## Adoção

Além da KDE Software Compilation, existem outros usuários, como os ambientes de desktop LXQt, MoonLightDE ou Hawaii.
A versão 3.0 do Krita, o editor de gráficos rasterizados da Calligra Suite, lançado em 31 de maio de 2016, depende do KDE Frameworks 5 e Qt 5.2.
Com o Kirigami, há também uma maior utilização por aplicações tais como Amarok, Avogadro, Trojitá ou Subsurface.