Curso: 620 - Engenharia da Computao Componente Curricular: 20399 Crditos: 4 Fase: 1 Interfaces Grficas de Usurio GUI Graphical User Interface Histria & Evoluo das GUIs Qt (Nokia) Framework para aplicativos multi-plataforma Atividades de laboratrio Exerccios realizados durante a disciplina C++ (Bjarne Stroustrup, 1983) Linguagemde programao (compilada) Conceitos - CLI Command-line User Interface Meio de interao com um programa de computador aonde o usurio digita comandos para um programa na forma de linhas sucessivas de texto: Conceitos - CLI Command-line User Interface Conceitos - CLI Command-line User Interface Conceitos - CLI Command-line User Interface Conceitos - GUI GUI Graphical User Interface Permite que usurios interajam com dispositivos eletrnicos usando imagens ao contrrio de interfaces baseadas em texto Ex: Conceitos - GUI GUI Graphical User Interface Permite que usurios interajam com dispositivos eletrnicos usando imagens ao contrrio de interfaces baseadas em texto Ex: computadores, dispositivos portteis (MP3 players), vdeo games, equipamentos industriais, dispositivos mveis, etc. Conceitos - GUI GUI Graphical User Interface Conceitos - GUI GUI Graphical User Interface Conceitos - GUI GUI Graphical User Interface Conceitos - GUI GUI Graphical User Interface Conceitos - GUI GUI Graphical User Interface Conceitos - GUI GUI Graphical User Interface Conceitos - GUI GUI Graphical User Interface Fabricantes desenvolvem seus prprios sistemas de janelas baseado em cdigo independente, com elementos bsicos que definem o WIMP: Window, Icon, Menu, Pointing Device Desvantagem: Conceitos - GUI GUI Graphical User Interface Fabricantes desenvolvem seus prprios sistemas de janelas baseado em cdigo independente, com elementos bsicos que definem o WIMP: Window, Icon, Menu, Pointing Device Desvantagem: necessrio dominar cada uma destas tecnologias para deenvolver um aplicativo para plataformas diferentes Conceitos - Histria GUI Graphical User Interface Douglas C. Engelbart: engenheiro no Standford Research Institute, que em1960 sonhou com uma interface grfica baseada emmouse Em1968 ele e um grupo de 17 pesquisadores trabalharamcom ele, fizerama apresentao de um vdeo de 90 minutos que serviu como lanamento pblico do mouse do computador: http://sloan.stanford.edu/mousesite/1968Demo.html Conceitos - Histria GUI Graphical User Interface Conceitos - Histria GUI Graphical User Interface Conceitos - Histria GUI Graphical User Interface Conceitos - Histria GUI Graphical User Interface Em1973, pesquisadores da Xerox (Palo Alto, California) criarama mquina Alto que deu origemao Xerox Star 8010 Document Processor, lanado comercialmente em 1981 por US$ 40.000. Conceitos - Histria GUI Graphical User Interface Xerox Alto Conceitos - Histria GUI Graphical User Interface 1981 Xerox Star O primeiro computador comercial com GUI Conceitos - Histria GUI Graphical User Interface 1981 IBM PC Focado empadres abertos SO da Microsoft Outros fabricantes copiaramo design do hardware e vendiamseus computadores com cpias do MSDOS Conceitos - Histria GUI Graphical User Interface Genrico IBM PC (compatvel) Conceitos - Histria GUI Graphical User Interface IBM PC & Clones Conceitos - Histria GUI Graphical User Interface IBM PC & Clones Steve Jobs visitou a Xerox em1979 para ver o Alto Ele percebeu que interfaces controlados por mouse eramsuperiores a interfaces controladas por teclas Comeou a trabalhar nisso imediatamente Computador da Xerox: Mouse no se movia na diagonal, as janelas no podiamser sobrepostas, nemas caixas de dilogos e o SO dependia de comandos do teclado Conceitos - Histria GUI Graphical User Interface 1983 Lisa Apple Fracasso comercial: focado na rea empresarial e academia. Conceitos - Histria GUI Graphical User Interface 1984 Macintosh Apple Conceitos - Histria GUI Graphical User Interface 1984 Macintosh Apple (MacPaint) Conceitos - Histria GUI Graphical User Interface 1987 Windows 2.0 Microsoft Conceitos - Histria GUI Graphical User Interface 1987 Arthur OS GUI com barra de tarefas Conceitos - Histria GUI Graphical User Interface 1988 NeXT GUI (Janelas com aparncia 3D e cones) Conceitos - Histria GUI Graphical User Interface 1990 Windows 3.0 - Microsoft Conceitos - Histria GUI Graphical User Interface 1991 System 7 - Apple Conceitos - Histria GUI Graphical User Interface 1992 Windows 3.11 - Microsoft Conceitos - Histria GUI Graphical User Interface 1995 Windows 95 - Microsoft Conceitos - Histria GUI Graphical User Interface 1996 Mac System 7.5.3 - Apple Conceitos - Histria GUI Graphical User Interface 1997 Mac OS 8 - Apple Conceitos - Histria GUI Graphical User Interface 2001 iPod - Apple Conceitos - Histria GUI Graphical User Interface 2001 Windows XP- Microsoft Conceitos - C++ 1979 Bell Labs C com classes. Em1983 renomeada para C++ Uma das mais populares atualmente Conhecida por ser uma linguagemde nvel intermedirio Possui orientao a objetos implementada emuma variedade enorme de dispositivos e sistemas operacionais Aplicaes: sistemas de software, aplicativos de software, drivers, software embarcado, servidores de alto desempenho, e video games Conceitos - C++ vs Java Hello World! JAVA import java.util.*; public class AloMundo { public static void main(String[] args) { System.out.prinln(Hello World!); } } #include <iostream> int main(int argc, char* args[]) { std::cout << Hello World! << std::endl; return 0; } C++ Conceitos - Qt Nokia Framework para desenvolvimento de aplicativos multi-plataforma com interface grfica Conceitos - Qt Nokia (Autodesk Maya) Conceitos - Qt Nokia (VLC Media Player) Conceitos - Qt Nokia (Virtual Box) Conceitos - Qt Nokia (Skype) Conceitos - Qt Trabalho final Plano de Ensino Cdigo de Conduta Acadmico O mrito acadmico avaliado com base na produo independente de um acadmico. O aluno que obtiver crdito pelo trabalho, palavras ou ideias que no sejam produzidos por seu prprio esforo considerado desonesto e viola o cdigo de conduta acadmico. Tal desonestidade entra em confronto com os padres de integridade acadmicos da universidade. A violao do cdigo de conduta pode resultar em penalidades que variam de repreenses verbais e at suspenso, ou expulso da universidade. Filosofia com relao a colaborao Alunos iniciantes aprendem mais quando resolvem dificuldades sozinhos, com auxlio adequado do professor A nota final do semestre baseada em provas e atividades individuais realizadas pelo aluno em sala de aula A colaborao nas atividades entre os prprios alunos permitida somente com a permisso do professor Tolerncia zero por formas inaceitveis de colaborao ASSIDUIDADE: seo VIII Do Regime Excepcional Art. 82. assegurado, mediante comprovao legal, o direito a tratamento excepcional, com dispensa de frequncia regular s atividades acadmicas: aluna gestante; Aos alunos portadores de afeces orgnicas, amparadas em lei; Ao aluno convocado para manobras militares; Ao aluno que comprovar a participao em atividades esportivas, cientficas e artsticas de carter oficial; Luto por morte do cnjuge ou parente at terceiro grau; Outras situaes que merecem tratamento excepcional, mediante aprovao do Colegiado de Curso. 1. Nos casos previstos nos incisos III e IV, este benefcio deve ser requerido com at 48 (quarenta e oito) horas de antecedncia. 2 Nos demais casos, este benefcio dever ser requerido at 10 (dez) dias teis subseqentes ao incio da ausncia s atividades letivas. 3. O tratamento excepcional no exime o aluno da realizao das avaliaes. Ambiente & Ferramentas Introduo #include <iostream> // necessrio para usar objeto cout #define PI 3.14159265 // diretiva de pr-processador // Exibe uma mensagemde boas-vindas int main(int argc, char* args[]) { std::cout << Hello World! << std::endl; return 0; } /* C++ case-sensitive */ C++ C++ Compilar e Executar Hello World! C++ O cdigo pr-processado antes de ser compilado: C++ Diretivas de pr-processamento: #define #ifndef #elif #include #else #line #error #pragma #if #undef #ifdef Tokens pr-definidos: __cplusplus : definido se o programa foi escrito em C++ __STDC__ : definido se o programa foi escrito em C padro __LINE__ : guarda o nmero da linha atual __FILE__ : guarda o nome do arquivo atual __DATE__ : guarda a data da compilao __TIME__ : guarda a hora da compilao Tipos de Dados Primitivos #include <iostream> using namespace std; int main() { cout << "sizeof(char) is " << sizeof(char) << " bytes " << endl; cout << "sizeof(short) is " << sizeof(short) << " bytes " << endl; cout << "sizeof(int) is " << sizeof(int) << " bytes " << endl; cout << "sizeof(long) is " << sizeof(long) << " bytes " << endl; cout << "sizeof(long long) is " << sizeof(long long) << " bytes " << endl; cout << "sizeof(float) is " << sizeof(float) << " bytes " << endl; cout << "sizeof(double) is " << sizeof(double) << " bytes " << endl; cout << "sizeof(long double) is " << sizeof(long double) << " bytes " << endl; cout << "sizeof(bool) is " << sizeof(bool) << " bytes " << endl; return 0; } C++ BIBLIOGRAFIA BOENTE, A. Aprendendo a Programar em Java 2 Orientado a Objetos. Sao Paulo: Brasport, 2003. SANTEE, A. Programacao de Jogos com C++ e DirectX. Sao Paulo: Novatec, 2005. 399p. JAMSA, K., KLANDER, L. Programando em C/C++. Makron Books, 1998. ISBN 1884133258 DEITEL, P. J., DEITEL, H. M. C++ Como Programar. Prentice Hall Brasil, 2006. ISBN 8576050560 JUNIOR, P. J. Introducao ao C++. Futura, 2003. ISBN 85-7413-172-5 HOLZNER, S. C++ Black Book. So Paulo: Makron Books, 2001. Qt Reference Documentation: http://doc.qt.nokia.com/4.7/index.html