Top Banner
Um Framework LGPL Multiplataforma Wagner Reck
36

Qt tchelinux-2010

Jun 28, 2015

Download

Technology

Wagner Reck

Apresentação sobre Qt no tchelinux Alegrete 2010.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Qt tchelinux-2010

Um FrameworkLGPL Multiplataforma

Wagner Reck

Page 2: Qt tchelinux-2010

Resumo● O que é ● Breve histórico● Principais Módulos e Ferramentas● Novidades por vir

Page 3: Qt tchelinux-2010

Qt is......a cross­platform application and UI framework

qt.nokia.com/products

...a cross­platform application framework that is widely used for developing application software with graphical user 

interface, and also used for developing non­GUI programs such as command­line tools and consoles for servers.

http://en.wikipedia.org/wiki/Qt_(framework)

Page 4: Qt tchelinux-2010
Page 5: Qt tchelinux-2010

Que plataformas o Qt roda?● Oficialmente: 

Windows (XP,Vista,7, CE), Linux/X11, Mac (Osx), Symbian (S60), Maemo, Meego, Linux embarcado

● Ports pela comunidade: Android, IPhone, Qnx, VxWorks, ReacOS, Haiku, Linux/Wayland, opensolaris, webOS, OS/2... ● Alguns ainda em desenvolvimento

Page 6: Qt tchelinux-2010

Algumas Caracteristicas● API intuitiva

● Ótima documentação

● Compatibilidade entre versões● Modular● Utiliza renderização nativa● Performace do C++

● bindings para outras linguagens se necessário

Page 7: Qt tchelinux-2010

Quem usa Qt?

Page 8: Qt tchelinux-2010

Onde Qt está presente?

Page 9: Qt tchelinux-2010

Breve Histórico● Primeira versão disponibilizada em 1995,

por Haavard Nord e Eirik Chambe-Eng;● Em 1997 o Qt passa a ser utilizado no

desenvolvimento do KDE e a versão 1.3 é lançada;

● Em 1999, o Qt 2 passa a ser licenciado pela QPL;

Page 10: Qt tchelinux-2010

Breve Histórico● Em 2000 é lançado o Qtopia (Qt para ambientes

embarcados);

● Neste mesmo, o Qt passa a ser licenciado pela GPL;

● Em 2001 é lançado o Qt3;

● Em 2005 é lançado o Qt4: primeira versão open-source em todas as plataformas;

● Em janeiro de 2008 a Trolltech é comprada pela Nokia.

Page 11: Qt tchelinux-2010

Breve Histórico● 2009 – Adicionada licença LGPL;

● 2009-2010 – Suporte a S60, Meego e Maemo;

● Versão 1.0 Nokia Qt SDK (Mobilly API + Simulator + Remote compiler);

● Nova ferramenta de desenvolvimento de interfaces – QtQuick;

Page 12: Qt tchelinux-2010

Qt é Modular● Necessita instalar/prover apenas os

módulos utilizados● Diminuição do espaço utilizado

(dispositivos embarcados)● Modulos: ferramentas e Bibliotecas

Page 13: Qt tchelinux-2010

Ferramentas● Qmake ● Linguist● Designer● Assistant● QtCreator● Plugin para Eclipse/Visual studio

Page 14: Qt tchelinux-2010

Módulos

Page 15: Qt tchelinux-2010

QtCore● Provê suporte básico

● Containers (strings, listas, hash, map)● Internacionalização● Comunição inter­objetos● Funções globais: qrand(), qAbs(), qMax()

Page 16: Qt tchelinux-2010

GUI● Componentes básicos

● QLabel● QLineEdit● QPushButom● QComboBox

● Diferentes layouts● grid, ancora, formulario...

Page 17: Qt tchelinux-2010

Designer

Page 18: Qt tchelinux-2010

Gráficos 2D● Classes do Graphics/View divididas

em:● Cenas: Agrega os itens gráficos● Visualizações : Viewport de uma cena

● Suporte a milhares de itens● Suporte a openGL (sem escrever

códigos OpenGL)

Page 19: Qt tchelinux-2010
Page 20: Qt tchelinux-2010

Mainwindow

Page 21: Qt tchelinux-2010

Documentos de Texto Rico● Permite criar documentos de forma

programática● Exportar para

● ODT● PDF● HTML● Imagens (SVG)● Impressora

Page 22: Qt tchelinux-2010

SQL● Acompanha drivers para os principais

SGBDs● Podem ser mantidas multiplas conexões

abertasQSqlDatabase conn = QSqlDatabase::addDatabase("QSQLITE", "DB")

conn.setDatabaseName("database")

conn.open()

Page 23: Qt tchelinux-2010

SQL● Exemplo de consulta:

QSqlQuery q (conn);

q.exec (“SELECT * FROM table;”);

while (q.next())

process(q.value(0));

process(q.value(1).toTime());

Page 24: Qt tchelinux-2010

Threads● 1- Escrever o processamento:

void function (QString filename){ // process file}

● 2 - Prepara os itens a serem processados:QStringList list;list << "file1.txt" << "file2.txt" << ... ;

● 3 - dispara o processo:QtConcurrent::map(list, function);

Page 25: Qt tchelinux-2010

Multimidia● Para pequenos efeitos

● Qsound/QMovie

● Aplicações multimidia● Phonon● Maior controle sobre a midia● ex. VLC / Amarok

Page 26: Qt tchelinux-2010

Gestos e Multitoque● Manipulação com gestos

● Zoom● Rolar lista

● Gestos customizados● Gestos para executar ações únicas 

Page 27: Qt tchelinux-2010

XML● 2 tipos (básicos) de parser

● Sax – XML maiores● Dom – XML menores

● Uso de padrões XML● Xquey, Xpath, Validação de schema xml 

Page 28: Qt tchelinux-2010

Animação● Facilita a criação de interfaces fluídas

● Escolha da propriedade a alterar● Definição do valor final e tempo● Escolha da curva de animação

● Execução em sequência ou paralelas

Page 29: Qt tchelinux-2010

Webkit● Início com Khtml

● Usado em vários navegadores

● No QT● widgets dentro de páginas HTML● Interação com os recursos da aplicação

Page 30: Qt tchelinux-2010

QtQuick● Permite a criação de interfaces fluidas● Linguagem declarativa para UI (QML)● Pode se comunicar com código Qt já existente● É trasparente para redes

● Não importa se arquivo está no PC ou WWW

Page 31: Qt tchelinux-2010

Exemplo QML import QtQuick 1.0 Rectangle { width: 200 height: 200 Text { text: "Hello World"

font.pixelSize: 22 anchors.centerIn: parent } }

Page 32: Qt tchelinux-2010

Exemplo QML Text{ ... font.pixelSize: 22 MouseArea{ id: textMouseArea anchors.fill: parent

} color: textMouseArea.pressed ?

"gold" : "black"; } }

Page 33: Qt tchelinux-2010
Page 34: Qt tchelinux-2010

Próxima Versão● “Modularização” dos “módulos”

● Facilita novas contribuições

● Lighthouse● Facilitar o port para outras plataformas

● Open Governance● Tornar público: roadmap, listas, QA

Page 35: Qt tchelinux-2010

Documentação Qt● qt.nokia.com/developer● qt.nokia.com/doc● revistaqt.blogspot.com● qtcentre.org

Page 36: Qt tchelinux-2010

Obrigado

Wagner Reck

[email protected]