SlideShare uma empresa Scribd logo
  IX Conferência Latino-Americana de Software Livre – Out/2012
Desenvolvendo Widgets QML
para o KDE Plasma Sandro Andrade
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEAgenda
● Novos requisitos para UX's
● Qt e QML
● KDE Plasma
● Plasma Widgets
● Seu Plasma Widget em 20 minutos
● O Futuro
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDE
Cross-platform
Interfaces flúidas
Desempenho em mobile
Adaptabilidade
Alta produtividade
Novos requisitos para
UXs
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
● 17 anos de história
● Criado pela Trolltech
● Mais de 900 classes e funcionalidades em diversas áreas,
além de GUIs
● Adquirido pela Nokia em 2008
● LGPL,Free Qt Foundation e Open Governance
● Adquirido pela Digia em 2012
● Versão 5.0 Beta 2 já disponível
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
● Porque Qt ?
● Cross-platform
● Excelente produtividade
● Excelente desempenho
● Ampla documentação
● Comunidade ativa e parte de um grande ecossistema
● Utilizado pelo Skype,Autodesk,Google,VLC,VirtualBox,dentre
muitos outros
● Possibilidade de uso com outras linguagens
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
UXs com Qt - Opção 1 (Qt Widgets)
gridLayout = new QGridLayout(Form);
label = new QLabel(Form);
gridLayout->addWidget(label,0,0,1,2);
lineEdit = new QLineEdit(Form);
gridLayout->addWidget(lineEdit,0,2,1,2);
horizontalSpacer = new QSpacerItem(121,20,QSizePolicy::Expanding,QSizePolicy::Minimum);
gridLayout->addItem(horizontalSpacer,1,0,1,1);
pushButton = new QPushButton(Form);
gridLayout->addWidget(pushButton,1,1,1,2);
pushButton_2 = new QPushButton(Form);
gridLayout->addWidget(pushButton_2,1,3,1,1);
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
UXs com Qt - Opção 2 (QML)
Rectangle {
width:360;height:180;color:"#343434"
Grid {
columns:2
spacing:10
Text {
id:text
text:"Enter your password:";color:"white";font.bold:true
}
...
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEQt e QML
● Porque QML ?
● Maior produtividade
● Fácil de aprender
● Excelente desempenho
● Boa documentação
● Melhor integração com o trabalho dos designers
● Facilmente integrável com C++,se necessário
● Componentes mais complexos para UXs ainda estão sendo
desenvolvidos
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● O que é o Plasma ?
Para o desenvolvedor
Application Framework
para desenvolvimento
de UXs
Para o usuário final
Workspace padrão do KDE
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Plasma Desktop
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Plasma Netbook
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Plasma Active
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEKDE Plasma
● Porque KDE Plasma ?
● Extremamente configurável
– Seis layouts diferentes
● Excelente desempenho
● Amplo uso de QML
● 90% do código é compartilhado entre os diferentes“flavours”
● Diversas plataformas-alvo:
– Desktops,netbooks,tablets
– No futuro:GPS's,setup boxes,TVs,veículos,geladeiras,...
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEPlasma Widgets
● O que são Plasma Widgets ?
● Mini-aplicações que podem ser executadas no workspace,panel
ou qualquer outro containment do Plasma
● 128 widgets diferentes oficialmente distribuídos pelo KDE
● Muitos outros desenvolvidos pela comunidade
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEPlasma Widgets
● Histórico do desenvolvimento de Plasma Widgets:
● 1a geração:
– Desenvolvidos em C++
● 2a geração:
– Desenvolvidos em JavaScript,Python ou Ruby
● 3a geração (recomendação atual do KDE):
– Desenvolvidos em QML + JavaScript
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● Estrutura geral de um Plasma Widget:
● <seu-widget>/metadata.desktop
● <seu-widget>/contents/main/ui/main.qml
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● metadata.desktop
[Desktop Entry]
Name=Hello QML
Comment=A hello world widget in QML
Icon=chronometer
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/main.qml
X-Plasma-DefaultSize=200,100
X-KDE-PluginInfo-Author=Frederik Gladhorn
X-KDE-PluginInfo-Email=gladhorn@kde.org
X-KDE-PluginInfo-Website=http://br.kde.org/
X-KDE-PluginInfo-Category=Examples
X-KDE-PluginInfo-Name=org.kde.hello-qml
X-KDE-PluginInfo-Version=0.0
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
X-KDE-ServiceTypes=Plasma/Applet
Type=Service
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● main.qml
import QtQuick 1.0
import org.kde.plasma.graphicswidgets 0.1 as PlasmaWidgets
Item {
width:64
height:64
PlasmaWidgets.IconWidget {
id:icon
Component.onCompleted:setIcon("flag-red")
anchors.centerIn:parent
}
}
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● Testando seu widget:
● plasmoidviewer <caminho-para-raiz-do-widget>
● Instalando:
● Plasmapkg -i (-u) <caminho-para-raiz-do-widget>
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDESeu Plasma Widget em 20
minutos
● Um leitor simples de feeds RSS
● Data Sources
● plasmaengineexplorer
Plasma
Data Engine
Plasma
Widget 1
Plasma
Widget 2
Plasma
Widget 3
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEO Futuro
● QML como tecnologia promissora para interfaces flúidas
cross-platform
● KDE Plasma como application framework para
desenvolvimento de UXs em diversos form factors
● Muitas novidades com o KDE Frameworks 5:
● Melhor modularização
● Melhor desempenho
● Número ilimitado de dispositivos-alvo
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDEMini-curso de QML
● Amanhã
● 10h as 13h
● Espaço Argentina – Laboratório 2
● Lamarque Souza
  IX Conferência Latino-Americana de Software Livre – Out/2012
KDE
Perguntas ?
sandroandrade@kde..org / @andradesandro
http://www.kde.org / http://br.kde.org

Mais conteúdo relacionado

PDF
O KDE no mundo
PDF
Desenvolvendo Aplicações Android com Qt
PDF
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
PDF
Práticas de Agilidade e QA na Comunidade KDE
PDF
Introdução à Programação C++ com Qt 4
PDF
Jogos em Qt
PDF
Introdução ao Qt
PDF
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
O KDE no mundo
Desenvolvendo Aplicações Android com Qt
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Práticas de Agilidade e QA na Comunidade KDE
Introdução à Programação C++ com Qt 4
Jogos em Qt
Introdução ao Qt
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas

Mais procurados (20)

PDF
Introdução ao Qt
PDF
Qt Techday - João Pessoa
PDF
Kde para iniciantes - Camila Ayres
PDF
Qt Apresentação
ODP
Overview de Grails: O Java em alta produtividade
PDF
Introdução ao qt
PDF
Aula 1 - Curso Git e Github - Webschool
ODP
Apresentação Python e Games - Python Brasil 11 - 2015
ODP
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
PDF
Git e contibuição com projetos open source usando GitHub
PDF
CRI-O - TDC Floripa 2018
PDF
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
PDF
Git para Designers
PDF
TDC2016SP - Trilha Linux Embarcado
PDF
Hack Thursday - NodeJS
PDF
Clean Code/Architecture com Android e Flutter
PDF
Qt tchelinux-2010
PPTX
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
PDF
Apresentação QtConBr
PDF
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
Introdução ao Qt
Qt Techday - João Pessoa
Kde para iniciantes - Camila Ayres
Qt Apresentação
Overview de Grails: O Java em alta produtividade
Introdução ao qt
Aula 1 - Curso Git e Github - Webschool
Apresentação Python e Games - Python Brasil 11 - 2015
Python Nordeste 2016 - Aplicações multiplataforma - Kivy
Git e contibuição com projetos open source usando GitHub
CRI-O - TDC Floripa 2018
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
Git para Designers
TDC2016SP - Trilha Linux Embarcado
Hack Thursday - NodeJS
Clean Code/Architecture com Android e Flutter
Qt tchelinux-2010
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Apresentação QtConBr
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
Anúncio

Destaque (10)

PDF
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
PDF
Minuet - the KDE approach to music education
PDF
SASO2013 - PechaKucha version
PDF
QtModeling - bringing metamodeling features into the KDE world
PDF
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...
PDF
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
PDF
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
PDF
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
PDF
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
PDF
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Minuet - the KDE approach to music education
SASO2013 - PechaKucha version
QtModeling - bringing metamodeling features into the KDE world
Apresentação no 4o Workshop de Sistemas Distribuídos Autonômicos - WoSiDA 201...
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Anúncio

Semelhante a Desenvolvendo Widgets QML para o KDE Plasma (10)

PDF
FLTK Summer Course - Part I - First Impact
PDF
KDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TI
PDF
20 anos de KDE: de Desktop a Guarda-Chuva de Projetos
PDF
c-gui-programming-with-qt-4-2ndedition -Cap1e2
PDF
Kde comunidade
PDF
O que há de novo no Plasma Netbook?
PDF
PDF
PDF
Games Open Source: experiências na comunidade KDE
PDF
QtQuick
FLTK Summer Course - Part I - First Impact
KDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TI
20 anos de KDE: de Desktop a Guarda-Chuva de Projetos
c-gui-programming-with-qt-4-2ndedition -Cap1e2
Kde comunidade
O que há de novo no Plasma Netbook?
Games Open Source: experiências na comunidade KDE
QtQuick

Último (19)

PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Processos na gestão de transportes, TM100 Col18
Apple Pippin Uma breve introdução. - David Glotz
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Aula 18 - Manipulacao De Arquivos python
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Custos e liquidação no SAP Transportation Management, TM130 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula04-Academia Heri- Tecnologia Geral 2025
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss

Desenvolvendo Widgets QML para o KDE Plasma

  • 1.   IX Conferência Latino-Americana de Software Livre – Out/2012 Desenvolvendo Widgets QML para o KDE Plasma Sandro Andrade
  • 2.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEAgenda ● Novos requisitos para UX's ● Qt e QML ● KDE Plasma ● Plasma Widgets ● Seu Plasma Widget em 20 minutos ● O Futuro
  • 3.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDE Cross-platform Interfaces flúidas Desempenho em mobile Adaptabilidade Alta produtividade Novos requisitos para UXs
  • 4.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML ● 17 anos de história ● Criado pela Trolltech ● Mais de 900 classes e funcionalidades em diversas áreas, além de GUIs ● Adquirido pela Nokia em 2008 ● LGPL,Free Qt Foundation e Open Governance ● Adquirido pela Digia em 2012 ● Versão 5.0 Beta 2 já disponível
  • 5.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML ● Porque Qt ? ● Cross-platform ● Excelente produtividade ● Excelente desempenho ● Ampla documentação ● Comunidade ativa e parte de um grande ecossistema ● Utilizado pelo Skype,Autodesk,Google,VLC,VirtualBox,dentre muitos outros ● Possibilidade de uso com outras linguagens
  • 6.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML UXs com Qt - Opção 1 (Qt Widgets) gridLayout = new QGridLayout(Form); label = new QLabel(Form); gridLayout->addWidget(label,0,0,1,2); lineEdit = new QLineEdit(Form); gridLayout->addWidget(lineEdit,0,2,1,2); horizontalSpacer = new QSpacerItem(121,20,QSizePolicy::Expanding,QSizePolicy::Minimum); gridLayout->addItem(horizontalSpacer,1,0,1,1); pushButton = new QPushButton(Form); gridLayout->addWidget(pushButton,1,1,1,2); pushButton_2 = new QPushButton(Form); gridLayout->addWidget(pushButton_2,1,3,1,1);
  • 7.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML UXs com Qt - Opção 2 (QML) Rectangle { width:360;height:180;color:"#343434" Grid { columns:2 spacing:10 Text { id:text text:"Enter your password:";color:"white";font.bold:true } ...
  • 8.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEQt e QML ● Porque QML ? ● Maior produtividade ● Fácil de aprender ● Excelente desempenho ● Boa documentação ● Melhor integração com o trabalho dos designers ● Facilmente integrável com C++,se necessário ● Componentes mais complexos para UXs ainda estão sendo desenvolvidos
  • 9.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● O que é o Plasma ? Para o desenvolvedor Application Framework para desenvolvimento de UXs Para o usuário final Workspace padrão do KDE
  • 10.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Plasma Desktop
  • 11.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Plasma Netbook
  • 12.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Plasma Active
  • 13.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEKDE Plasma ● Porque KDE Plasma ? ● Extremamente configurável – Seis layouts diferentes ● Excelente desempenho ● Amplo uso de QML ● 90% do código é compartilhado entre os diferentes“flavours” ● Diversas plataformas-alvo: – Desktops,netbooks,tablets – No futuro:GPS's,setup boxes,TVs,veículos,geladeiras,...
  • 14.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEPlasma Widgets ● O que são Plasma Widgets ? ● Mini-aplicações que podem ser executadas no workspace,panel ou qualquer outro containment do Plasma ● 128 widgets diferentes oficialmente distribuídos pelo KDE ● Muitos outros desenvolvidos pela comunidade
  • 15.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEPlasma Widgets ● Histórico do desenvolvimento de Plasma Widgets: ● 1a geração: – Desenvolvidos em C++ ● 2a geração: – Desenvolvidos em JavaScript,Python ou Ruby ● 3a geração (recomendação atual do KDE): – Desenvolvidos em QML + JavaScript
  • 16.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● Estrutura geral de um Plasma Widget: ● <seu-widget>/metadata.desktop ● <seu-widget>/contents/main/ui/main.qml
  • 17.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● metadata.desktop [Desktop Entry] Name=Hello QML Comment=A hello world widget in QML Icon=chronometer X-Plasma-API=declarativeappletscript X-Plasma-MainScript=ui/main.qml X-Plasma-DefaultSize=200,100 X-KDE-PluginInfo-Author=Frederik Gladhorn X-KDE-PluginInfo-Email=gladhorn@kde.org X-KDE-PluginInfo-Website=http://br.kde.org/ X-KDE-PluginInfo-Category=Examples X-KDE-PluginInfo-Name=org.kde.hello-qml X-KDE-PluginInfo-Version=0.0 X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=GPL X-KDE-PluginInfo-EnabledByDefault=true X-KDE-ServiceTypes=Plasma/Applet Type=Service
  • 18.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● main.qml import QtQuick 1.0 import org.kde.plasma.graphicswidgets 0.1 as PlasmaWidgets Item { width:64 height:64 PlasmaWidgets.IconWidget { id:icon Component.onCompleted:setIcon("flag-red") anchors.centerIn:parent } }
  • 19.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● Testando seu widget: ● plasmoidviewer <caminho-para-raiz-do-widget> ● Instalando: ● Plasmapkg -i (-u) <caminho-para-raiz-do-widget>
  • 20.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDESeu Plasma Widget em 20 minutos ● Um leitor simples de feeds RSS ● Data Sources ● plasmaengineexplorer Plasma Data Engine Plasma Widget 1 Plasma Widget 2 Plasma Widget 3
  • 21.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEO Futuro ● QML como tecnologia promissora para interfaces flúidas cross-platform ● KDE Plasma como application framework para desenvolvimento de UXs em diversos form factors ● Muitas novidades com o KDE Frameworks 5: ● Melhor modularização ● Melhor desempenho ● Número ilimitado de dispositivos-alvo
  • 22.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDEMini-curso de QML ● Amanhã ● 10h as 13h ● Espaço Argentina – Laboratório 2 ● Lamarque Souza
  • 23.   IX Conferência Latino-Americana de Software Livre – Out/2012 KDE Perguntas ? sandroandrade@kde..org / @andradesandro http://www.kde.org / http://br.kde.org