Desenvolvendo Aplicações para KDE

David Sweet

translator:

This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).

Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.

No patent liability is assumed with respect to the use of the information contained herein. Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions. Neither is any liability assumed for damages resulting from the use of the information contained herein.

Library of Congress Catalog Card Number: 99-067972

Printed in the United States of America

First Printing: October 2000

03 02 01 00 4 3 2 1

Trademarks

All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. Sams Publishing cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark.

Warning and Disclaimer

Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information provided is on an “as is” basis. The authors and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book.


Índice

Introdução
Pré-Requisitos
Sobre a Licença Open Publication (OPL)
Organização deste Livro
Convenções Usadas neste Livro
Tempo para Desenvolver!
I. Fundamentos de Programação de Aplicações para KDE
1. Por trás do KDE
Motivação por um Desktop Livre
Por que desenvolver para o KDE?
Organização e recursos do KDE
Requisitos de sistema
Obtendo e instalando o KDE
Instalando os pacotes com os binários
Instalando pacotes de código fonte
Usando o Konstruct
Licenças e legalidades
Vamos ao código!
2. Uma Aplicação KDE simples
O Desktop do Programador Linux/UNIX
O Necessário para editar o Código
Depurador disponível para o Linux
Compilando um programa KDE
Usando o make
Estrutura de uma Aplicação KDE
KApplication
KMainWindow
Uma Função main() Típica
Elementos GUI
O Menubar
A Barra de Ferramentas
A Barra de Status
Convenções Usadas na Programação
Convenções de Nomenclatura
Documentação de Classe
Sumário
3. A Biblioteca Qt
Para que serve (Aparência e Comportamento)
Por Dentro da Ferramenta Qt
QObject
QWidget
QPainter
QPushButton
Sinais e Slots
Criando um Slot
Emitindo um Sinal
Conectando um Sinal a um Slot
Sinais e Slots com Parâmetros
Slots em Classes Temporárias
Meta Object Compiler (moc)
Usando a Ferramenta moc
Exemplo de uso do moc
As Classes Utilitárias
Templates
Standard Template Library (STL)
QPtrList: Uma classe template da Qt.
Funcionalidades Especiais (ImageIO, OpenGL, Mesa)
ImageIO
OpenGL, Mesa
Sumário
4. Criando KDE Widgets Customizadas
Compreendendo a Classe Base QWidget
Desenhando em Widgets
Quando o Desenho Ocorre
Repintar Eficientemente
Pintando seu Widget com QPainter
Comandos para gravar desenhos com QPicture
Um Widget Simples
Usando Child Widgets (Widgets Filhos)
Gerenciando a Geometria
Jogando o Jogo
Manejando Intervenções do Usuário
Cliques do Mouse
Entradas do Teclado (Keystrokes)
5. Padronização da Interface do Usuário
A interface Document-Centric do KDE
O MenuBar e o ToolBar
Criando e Manipulando Actions
O StatusBar (A Barra de Status)
Área de Conteúdo (Content Area)
Caixas de Diálogo Padrões
6. Referencia de estilos do KDE
Acessando Ações Padrões
Gerenciamento de sessão
Ícones padrões do KDE
Internacionalização
Tocando sons.
Notificações de usuário
Executando Outros Programas
Transparência de Rede
Usabilidade
II. Widgets KDE Avançados e Técnicas de Designer UI
7. Widgets KDE de Funções Complexas
Renderizando Arquivos HTML
Um navegador simples
Manipulando Imagens
Comparação entre QImage e QPixmap
Um visualizador/conversor de imagens.
Checando Ortografia
Usando KSpell numa aplicação
Correção Ortográfica Modal
Configurando KSpell
Acessando o Livro de Endereços
Usando o KConfig XT
A estrutura do Arquivo .kcfg
Arquivos .kcfgc
Configurando o arquivo Makefile.am
Uso
Exemplo
Dicas e Lembretes
8. Tipos alternativos de aplicativos
Aplicativos baseados em diálogos
Criando o aplicativo baseado em diálogo
Aplicativos de Instância Única
Panel Applets (Applets de Painel)
III. Interação e Integração de Aplicativos
9. Criando e Usando Componentes (KParts)
A Diferença Entre Componentes e Widgets
A Estrutura de Componentes do KDE (Component Framework)
Descrevendo a Interface de Usuário em XML
Parts Apenas-Leitura e Leitura/Escrita
Parts Read-Only (Apenas Leitura)
Parts Read-Write (Leitura-Escrita)
Criando uma Part
Tornando a Part Disponível Através de Bibliotecas Compartilhadas
Criando uma Aplicação KPart
Embutindo Mais de Uma Part em Uma Mesma Janela
Criando um Plug-in com KParts
Sumário
10. DCOP — Desktop Communication Protocol
Motivação
História
Tecnologias Subjacentes
ICE - O Mecanismo Inter Client Exchange
Data Streaming
Arquitetura
Descrição da Interface de Programação do DCOP
Começando Tudo
Usando send(), call(), process() e métodos relacionados
dcopIDL - Elegância Automatizada
Um Makefile Mágico
Ferramentas e Coisas Interessantes sobre DCOP
IV. Ferramentas de Desenvolvimento e Suporte
11. Gerenciando Códigos Fonte com o CVS
O que é o CVS?
O Papel do CVS no Projeto KDE
Organização do CVS
"Braços"
Acessando código-fonte no CVS
Snapshots
A interface Web do CVS
CVSup
Contas CVS
Instalando e usando o CVSup
Instalando e usando o CVS
Comandos frequentemente usados
Cervisia - Interface Gráfica para o CVS
Sumário
12. Usando Kdevelop com o QT/Designer
Como baixar e iniciar o KDevelop e o QT Designer
Requerimentos
Executando o KDevelop
Criando a Aplicação
Criando um novo Projeto
Compilando o que o KDevelop fez para nós
Entendendo a estrutura básica
Primeiras Mudanças nos Fontes
Removendo Coisas que Não Usaremos
Usando o Designer
Adicionando um arquivo .ui
Usando o Designer
Integrando o Designer com o KDevelop
Fazendo o Designer gerar as Funções do Widget
Adicionando nomes, slots e conexões
Implementando ods slots
Removendo o Brilho usando um Timer
Carregando e Manipulando um Pixmap
Carregando um Pixmap
Misturando as Cores
Modificando uma UI Existente
Adicionando o Slider Alpha
Adicionando o Botão de Escolha de Cores
Adicionando Novas Implementações de Métodos
Suporte para o alpha slider
Suporte para o botão de cor
Algumas Correções Aqui e Alí
Consertando o Botão de Cor
Reparando o pixmap inicialmente usado
Adicionando Mais Características
Fazendo o Possível para Salvar o Resultado
Adicionando suporte à Drag&Drop
V. Ferramentas para Documentação
13. Escrevendo Documentos DocBook para o KDE
Regras gerais para um bom documento
Finalidade Deste Documento
Outro material de referência
O Prefácio
As seções book e bookinfo
Capítulos e Seções
Elementos de link
Listas
Tabelas
Elementos de GUI, menus, barras de ferramentas e atalhos.
Descrevendo ações e comandos
Perguntas e respostas
Imagens e exemplos
Outros markups (não discutidos em nenhum outro lugar)
Conselhos: Dicas, truques e avisos.
Elementos de resumo
Markup para programação
Fazendo chamadas
Referências, indexes e glossários
Fazendo um glossário
Fazendo um Índice
Referências a outras seções
Tags que não usamos
Lista alfabética de todas as tags
14. Documentando Aplicações
Ajuda Rápida para o Uso de Sua Aplicação
Criando o Manual do Aplicativo
Conectando a Aplicação ao Manual
Ferramentas usadas para processar KDE Docbook
checkXML
meinproc
Folhas de estilo (stylesheets)
Documentando o Código Fonte
Obtendo e Instalando o KDOC
Usando KDOC
Documentação da Biblioteca
Documentação de Classe
Documentação de Método
Documentação de Classe e Método
VI. Filosofia
15. Questões sobre Licenciamento
O que são essas "questões"?
Que licenças estão envolvidas?
Como as licenças me afetam?
O uso das licenças pelo KDE
Library GNU Public License (Licença Pública de Bibliotecas GNU, LGPL)
A GNU Public License (Licença Publica GNU, GPL)
A guerra entre a GPL e a Qt
O uso de licenças pelo Qt
A licença Free Qt
A Q Public License (QPL)
Histórico de licenciamento KDE/Qt
A Gênesis da QPL
A evolução da QPL
Sumário
VII. Apêndices
A. Um pouco sobre XML
B. Créditos
Glossário
Créditos e Bibliografia