Export translations SettingsGroupCategory:PhononContribute/List of KDE ModulesDevelopmentDevelopment/FAQs/General FAQDevelopment/FAQs/Technical FAQDevelopment/KDevelop-PG-Qt IntroductionDevelopment/ToolsDevelopment/TutorialsDevelopment/Tutorials/CommandLineArgumentsDevelopment/Tutorials/Common Programming MistakesDevelopment/Tutorials/First programDevelopment/Tutorials/First program/KDE4Development/Tutorials/First program/KF5Development/Tutorials/KDE3/Qt Designer and KDevelop 3.0 for BeginnersDevelopment/Tutorials/Metadata/Nepomuk/TipsAndTricksDevelopment/Tutorials/Physical SimulationDevelopment/Tutorials/Qt4 Ruby TutorialDevelopment/Tutorials/Qt4 Ruby Tutorial/Chapter 01Development/Tutorials/Qt4 Ruby Tutorial/Chapter 04Development/Tutorials/Qt4 Ruby Tutorial/Chapter 05Development/Tutorials/Qt4 Ruby Tutorial/Chapter 06Development/Tutorials/Qt4 Ruby Tutorial/Chapter 07Development/Tutorials/Qt4 Ruby Tutorial/Chapter 08Development/Tutorials/Qt4 Ruby Tutorial/Chapter 09Development/Tutorials/Qt4 Ruby Tutorial/Chapter 10Development/Tutorials/Qt4 Ruby Tutorial/Chapter 11Development/Tutorials/Qt4 Ruby Tutorial/Chapter 12Development/Tutorials/Qt4 Ruby Tutorial/Chapter 13Development/Tutorials/Qt4 Ruby Tutorial/Chapter 14Development/Tutorials/Qt4 Ruby Tutorial/Chapter 2Development/Tutorials/Qt4 Ruby Tutorial/Chapter 3Development/Tutorials/Saving and loadingDevelopment/Tutorials/Setting UpDevelopment/Tutorials/Using ActionsDevelopment/Tutorials/Using KXmlGuiWindowDocumentation PrimerEdit MarkupGetting StartedHelp:ContentsHelp:ContributeHow To Convert a UserBase Manual to DocbookKDE FrameworksKDE Frameworks/Getting StartedKDE Frameworks/Getting Started/Source CodeKDE TechBase:AboutKDE TechBase:ContributorsKDE TechBase:General disclaimerKDE TechBase:Privacy policyOff-line TranslationProjects/Calligra/Plugin TutorialsToolboxTranslate a PageTranslation WorkflowTypographical GuidelinesUser:NeverendingoWelcome to KDE TechBaseLanguageaa - Afarab - Abkhazianabs - Ambonese Malayace - Achineseady - Adygheady-cyrl - Adyghe (Cyrillic script)aeb - Tunisian Arabicaeb-arab - Tunisian Arabic (Arabic script)aeb-latn - Tunisian Arabic (Latin script)af - Afrikaansak - Akanaln - Gheg Albanianalt - Southern Altaiam - Amharicami - Amisan - Aragoneseang - Old Englishanp - Angikaar - Arabicarc - Aramaicarn - Mapuchearq - Algerian Arabicary - Moroccan Arabicarz - Egyptian Arabicas - Assamesease - American Sign Languageast - Asturianatj - Atikamekwav - Avaricavk - Kotavaawa - Awadhiay - Aymaraaz - Azerbaijaniazb - South Azerbaijaniba - Bashkirban - Balinesebar - Bavarianbbc - Batak Tobabbc-latn - Batak Toba (Latin script)bcc - Southern Balochibcl - Central Bikolbe - Belarusianbe-tarask - Belarusian (Taraškievica orthography)bg - Bulgarianbgn - Western Balochibh - Bhojpuribho - Bhojpuribi - Bislamabjn - Banjarbm - Bambarabn - Banglabo - Tibetanbpy - Bishnupriyabqi - Bakhtiaribr - Bretonbrh - Brahuibs - Bosnianbtm - Batak Mandailingbto - Iriga Bicolanobug - Buginesebxr - Russia Buriatca - Catalancbk-zam - Chavacanocdo - Min Dong Chinesece - Chechenceb - Cebuanoch - Chamorrocho - Choctawchr - Cherokeechy - Cheyenneckb - Central Kurdishco - Corsicancps - Capiznoncr - Creecrh - Crimean Turkishcrh-cyrl - Crimean Tatar (Cyrillic script)crh-latn - Crimean Tatar (Latin script)cs - Czechcsb - Kashubiancu - Church Slaviccv - Chuvashcy - Welshda - Danishde - Germande-at - Austrian Germande-ch - Swiss High Germande-formal - German (formal address)din - Dinkadiq - Zazakidsb - Lower Sorbiandtp - Central Dusundty - Dotelidv - Divehidz - Dzongkhaee - Eweegl - Emilianel - Greekeml - Emiliano-Romagnoloen - Englishen-ca - Canadian Englishen-gb - British Englisheo - Esperantoes - Spanishes-419 - Latin American Spanishes-formal - español (formal)et - Estonianeu - Basqueext - Extremaduranfa - Persianff - Fulahfi - Finnishfit - Tornedalen Finnishfj - Fijianfo - Faroesefr - Frenchfrc - Cajun Frenchfrp - Arpitanfrr - Northern Frisianfur - Friulianfy - Western Frisianga - Irishgag - Gagauzgan - Gan Chinesegan-hans - Gan (Simplified)gan-hant - Gan (Traditional)gcr - Guianan Creolegd - Scottish Gaelicgl - Galicianglk - Gilakign - Guaranigom - Goan Konkanigom-deva - Goan Konkani (Devanagari script)gom-latn - Goan Konkani (Latin script)gor - Gorontalogot - Gothicgrc - Ancient Greekgsw - Swiss Germangu - Gujaratigv - Manxha - Hausahak - Hakka Chinesehaw - Hawaiianhe - Hebrewhi - Hindihif - Fiji Hindihif-latn - Fiji Hindi (Latin script)hil - Hiligaynonho - Hiri Motuhr - Croatianhrx - Hunsrikhsb - Upper Sorbianht - Haitian Creolehu - Hungarianhu-formal - magyar (formal)hy - Armenianhyw - Western Armenianhz - Hereroia - Interlinguaid - Indonesianie - Interlingueig - Igboii - Sichuan Yiik - Inupiaqike-cans - Eastern Canadian (Aboriginal syllabics)ike-latn - Eastern Canadian (Latin script)ilo - Ilokoinh - Ingushio - Idois - Icelandicit - Italianiu - Inuktitutja - Japanesejam - Jamaican Creole Englishjbo - Lojbanjut - Jutishjv - Javaneseka - Georgiankaa - Kara-Kalpakkab - Kabylekbd - Kabardiankbd-cyrl - Kabardian (Cyrillic script)kbp - Kabiyekg - Kongokhw - Khowarki - Kikuyukiu - Kirmanjkikj - Kuanyamakjp - Eastern Pwokk - Kazakhkk-arab - Kazakh (Arabic script)kk-cn - Kazakh (China)kk-cyrl - Kazakh (Cyrillic script)kk-kz - Kazakh (Kazakhstan)kk-latn - Kazakh (Latin script)kk-tr - Kazakh (Turkey)kl - Kalaallisutkm - Khmerkn - Kannadako - Koreanko-kp - Korean (North Korea)koi - Komi-Permyakkr - Kanurikrc - Karachay-Balkarkri - Kriokrj - Kinaray-akrl - Karelianks - Kashmiriks-arab - Kashmiri (Arabic script)ks-deva - Kashmiri (Devanagari script)ksh - Colognianku - Kurdishku-arab - Kurdish (Arabic script)ku-latn - Kurdish (Latin script)kum - Kumykkv - Komikw - Cornishky - Kyrgyzla - Latinlad - Ladinolb - Luxembourgishlbe - Laklez - Lezghianlfn - Lingua Franca Novalg - Gandali - Limburgishlij - Ligurianliv - Livonianlki - Lakilld - Ladinlmo - Lombardln - Lingalalo - Laoloz - Lozilrc - Northern Lurilt - Lithuanianltg - Latgalianlus - Mizoluz - Southern Lurilv - Latvianlzh - Literary Chineselzz - Lazmai - Maithilimap-bms - Basa Banyumasanmdf - Mokshamg - Malagasymh - Marshallesemhr - Eastern Marimi - Maorimin - Minangkabaumk - Macedonianml - Malayalammn - Mongolianmni - Manipurimnw - Monmo - Moldovanmr - Marathimrj - Western Marims - Malaymt - Maltesemus - Muscogeemwl - Mirandesemy - Burmesemyv - Erzyamzn - Mazanderanina - Naurunah - Nāhuatlnan - Min Nan Chinesenap - Neapolitannb - Norwegian Bokmålnds - Low Germannds-nl - Low Saxonne - Nepalinew - Newaring - Ndonganiu - Niueannl - Dutchnl-informal - Nederlands (informeel)nn - Norwegian Nynorskno - Norwegiannov - Novialnqo - N’Konrm - Normannso - Northern Sothonv - Navajony - Nyanjanys - Nyungaroc - Occitanolo - Livvi-Karelianom - Oromoor - Odiaos - Osseticpa - Punjabipag - Pangasinanpam - Pampangapap - Papiamentopcd - Picardpdc - Pennsylvania Germanpdt - Plautdietschpfl - Palatine Germanpi - Palipih - Norfuk / Pitkernpl - Polishpms - Piedmontesepnb - Western Punjabipnt - Ponticprg - Prussianps - Pashtopt - Portuguesept-br - Brazilian Portuguesequ - Quechuaqug - Chimborazo Highland Quichuargn - Romagnolrif - Riffianrm - Romanshrmy - Vlax Romanirn - Rundiro - Romanianroa-tara - Tarantinoru - Russianrue - Rusynrup - Aromanianruq - Megleno-Romanianruq-cyrl - Megleno-Romanian (Cyrillic script)ruq-latn - Megleno-Romanian (Latin script)rw - Kinyarwandasa - Sanskritsah - Sakhasat - Santalisc - Sardinianscn - Siciliansco - Scotssd - Sindhisdc - Sassarese Sardiniansdh - Southern Kurdishse - Northern Samisei - Serises - Koyraboro Sennisg - Sangosgs - Samogitiansh - Serbo-Croatianshi - Tachelhitshi-latn - Tachelhit (Latin script)shi-tfng - Tachelhit (Tifinagh script)shn - Shanshy-latn - Shawiya (Latin script)si - Sinhalasimple - Simple Englishsk - Slovakskr - Saraikiskr-arab - Saraiki (Arabic script)sl - Sloveniansli - Lower Silesiansm - Samoansma - Southern Samismn - Inari Samisn - Shonaso - Somalisq - Albaniansr - Serbiansr-ec - Serbian (Cyrillic script)sr-el - Serbian (Latin script)srn - Sranan Tongoss - Swatist - Southern Sothostq - Saterland Frisiansty - себертатарsu - Sundanesesv - Swedishsw - Swahiliszl - Silesianszy - Sakizayata - Tamiltay - Tayaltcy - Tulute - Telugutet - Tetumtg - Tajiktg-cyrl - Tajik (Cyrillic script)tg-latn - Tajik (Latin script)th - Thaiti - Tigrinyatk - Turkmentl - Tagalogtly - Talyshtn - Tswanato - Tongantpi - Tok Pisintr - Turkishtru - Turoyotrv - Tarokots - Tsongatt - Tatartt-cyrl - Tatar (Cyrillic script)tt-latn - Tatar (Latin script)tum - Tumbukatw - Twity - Tahitiantyv - Tuviniantzm - Central Atlas Tamazightudm - Udmurtug - Uyghurug-arab - Uyghur (Arabic script)ug-latn - Uyghur (Latin script)uk - Ukrainianur - Urduuz - Uzbekuz-cyrl - Uzbek (Cyrillic script)uz-latn - Uzbek (Latin script)ve - Vendavec - Venetianvep - Vepsvi - Vietnamesevls - West Flemishvmf - Main-Franconianvo - Volapükvot - Voticvro - Võrowa - Walloonwar - Waraywo - Wolofwuu - Wu Chinesexal - Kalmykxh - Xhosaxmf - Mingrelianxsy - Saisiyatyi - Yiddishyo - Yorubayue - Cantoneseza - Zhuangzea - Zeelandiczgh - Standard Moroccan Tamazightzh - Chinesezh-cn - Chinese (China)zh-hans - Simplified Chinesezh-hant - Traditional Chinesezh-hk - Chinese (Hong Kong)zh-mo - Chinese (Macau)zh-my - Chinese (Malaysia)zh-sg - Chinese (Singapore)zh-tw - Chinese (Taiwan)zu - Zuluqqq - Message documentationFormatExport for off-line translationExport in native format Fetch {{DISPLAYTITLE:KDE Frameworks}}<languages/> [[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. </div> <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__ = Garantias e Licença = 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> = Organização = 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. 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. {{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]].}} == Etapa 1: Instale o Framework que você precisa == 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: <syntaxhighlight lang="bash"> sudo apt install libkf5widgetsaddons-dev </syntaxhighlight> 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]. == 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. <syntaxhighlight lang="make"> TEMPLATE = app TARGET = kdatepicker-example QT += core widgets KWidgetsAddons SOURCES += main.cpp </syntaxhighlight> 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. <syntaxhighlight lang="cpp-qt"> #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(); } </syntaxhighlight> 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 [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] 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] 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] 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. * 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] é 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 [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. 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 = * [https://kde.org/products/frameworks/ Página de produto do KDE Frameworks] * [https://api.kde.org/frameworks/index.html Documentaçãoda API do Framework] * [[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 dos fontes] * [https://community.kde.org/Get_Involved/development Como se envolver com a comunidade KDE]