com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software...

32
Estendendo aplicações C++ com PyQt Eliakin Costa– KDE [email protected]

Transcript of com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software...

Page 1: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Estendendo aplicações C++ com PyQtEliakin Costa– [email protected]

Page 2: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

whoamiEliakin Costa de AlmeidaIFBA - KDE - GSoC - PIBIC

Page 3: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Agenda1. Estender Código C++ com

Python2. SIP3. PyQt4. Krita e PyQt

Page 4: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Gratidão

Page 5: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

1.Estender Código C++ com Python

Page 6: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Por que estender?1. Python é mais fácil

2. Quando programando com Qt, podemos utilizar o PyQt

3. C++ pode ser usado apenas quando a performance é um ponto crítico

4. Tornar o seu software acessível a scripts python em run-time

Page 7: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

“Expor C/C++ para Python pode ser árduo e enfadonho.

Page 8: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

DESKTOP PROJECT

Show and explain your web, app or software projects using these gadget templates.

Page 9: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

DESKTOP PROJECT

Show and explain your web, app or software projects using these gadget templates.

Page 10: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para
Page 11: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para
Page 12: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Quais os principais problemas dessa abordagem?

Difícil de manterAlterações feitas na API acessada podem gerar muito impacto na implementação.

Maior ComplexidadeQuem implementa o wrapper precisa conhecer a API Python/C e gerenciar memória quando necessário.

Muito RepetitivoNa maior parte dos casos o código se resume a cast dos tipos/objetos do C++ para Python.

Page 13: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

2.SIP

Page 14: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

“É uma ferramenta para gerar automaticamente bindings Python para bibliotecas C e C++.

Page 15: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

ESTENDER API C++ COM SIP É FÁCIL

C++

.SIP

Python

Page 16: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

Page 17: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

Page 18: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Quais as vantagens?1. Todo o código C++ é gerado

automaticamente2. Suporte a geração do MakeFile3. Suporta Qt, incluindo signals e slots4. .sip simples de declarar

Page 19: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

3.PyQt

Page 20: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

“PyQt é um conjunto de bindings para Qt que roda em todas as plataformas suportadas pelo Qt, incluindo Windows, OS X, Linux, iOS e Android. Suporta Python 2 e 3

Page 21: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

> 1000classes implementadas do Qt.

Page 22: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Qt + Python = <3Um programador tem todo o poder do Qt, mas pode explorar isso com a simplicidade do Python.

Page 23: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

Page 24: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

Page 25: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

4.Krita e PyQt

Page 26: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

KRITA É UMA FERRAMENTA PARA PINTURA DIGITAL GRATUITA E OPEN SOURCE

Page 27: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

QUAL O PROBLEMA QUE TÍNHAMOS?

Muitas tarefas repetitivas (exportar layers, ajustar tamanho de documento, etc) dentro da ferramenta precisavam ser automatizadas.

Page 28: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Python Scripting Support

Page 29: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

PYTHON SCRIPTER

Page 30: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Place your screenshot here

FILTER MANAGER

Page 31: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

Considerações finais1. O PyQt torna possível desenvolver suas

aplicações Qt em Python2. É necessário adquirir a licença comercial do

PyQt para distribuir como software proprietário

3. O repositório do PyQt tem muitos exemplos disponíveis

Page 32: com PyQt aplicações C++ Estendendo · performance é um ponto crítico 4.Tornar o seu software acessível a scripts ... 2.É necessário adquirir a licença comercial do PyQt para

OBRIGADO!

[email protected]/eliakincosta@eliakin_costa