18T00464 JACOME Q Y MACAS C

Total Page:16

File Type:pdf, Size:1020Kb

18T00464 JACOME Q Y MACAS C ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE INGENIERÍA EN SISTEMAS “ANÁLISIS COMPARATIVO DE BIBLIOTECAS MULTIPLATAFORMA PARA EL DESARROLLO DE APLICACIONES DE ESCRITORIO, APLICADO A LA ESCUELA DE DISEÑO GRÁFICO” TESIS DE GRADO Previa la obtención del título de: INGENIERA EN SISTEMAS INFORMÁTICOS Presentado por: MAYRA ALEXANDRA MACAS CARRASCO ANA ELIZABETH JÁCOME QUINTANILLA RIOBAMBA – ECUADOR 2011 AGRADECIMIENTO Agradezco a Dios, por concederme la vida y mantenerme con salud, pero sobre todo por estar siempre junto a mi bendiciéndome; a mis padres ya que siempre me apoyaron incondicionales inculcándome que se debe ser honesto, trabajador y perseverante; a mis hermanas por su motivación y apoyo, y a mis amigos porque cada uno de ellos en un determinado tiempo me brindaron su mano para ayudarme. Mayra Macas Carrasco A Dios por otorgarme el regalo de la vida y estar siempre junto a mí, a mi familia por su amor incondicional, sus consejos, enseñanzas para salir adelante, a mis amigas porque junto a ellas aprendí muchas cosas y a mis profesores por su colaboración para culminar este trabajo. Ana Jácome Quintanilla DEDICATORIA A Dios por estar junto a mí iluminándome siempre, a mis padres y hermanas que son fundamentales en mi vida, a mis amigos por brindarme siempre su apoyo incondicional y a los profesores por ser una guía en el proceso de formación profesional de los estudiantes. Mayra Macas Carrasco El presente trabajo está dedicado a mis padres, hermanas y hermanos que son uno de los pilares fundamentales en mi vida, a mis amigas por concederme su apoyo incondicional y a mis profesores por ser mi guía durante esta etapa de aprendizaje. Ana Jácome Quintanilla NOMBRE FIRMA FECHA Ing. Iván Menes DECANO DE LA FACULTAD DE INFORMÁTICA Y ELECTRÓNICA …………………………………………. Ing. Raúl Rosero DIRECTOR DE LA ESCUELA DE INGENIERÍA EN SISTEMAS …………………………………………. Ing. Wladimir Castro DIRECTOR DE TESIS …………………………………………. Ing. Jorge Menéndez MIEMBRO DEL TRIBUNAL …………………………………………. Lic. Carlos Rodríguez DIRECTOR DEL CENTRO DE DOCUMENTACIÓN …………………………………………. NOTA DE LA TESIS ………………………… RESPONSABILIDAD DEL AUTOR “Nosotras, Mayra Alexandra Macas Carrasco y Ana Jácome Quintanilla, somos las responsables de las ideas, doctrinas y resultados expuestos en esta tesis, y el patrimonio intelectual de la misma pertenece a la Escuela Superior Politécnica de Chimborazo”. Mayra Alexandra Macas Carrasco Ana Elizabeth Jácome Quintanilla ÍNDICE GENERAL CAPÍTULO I 1.1. Antecedentes ....................................................................................................... 14 1.2. Objetivos ............................................................................................................. 19 1.2.1. Objetivo general .................................................................................................. 19 1.2.2. Objetivos específicos .......................................................................................... 19 1.3. Marco hipotético ................................................................................................. 20 1.3.1. Hipótesis.............................................................................................................. 20 CAPÍTULO II 2.1. Introducción ........................................................................................................ 21 2.2. Biblioteca Gráfica ............................................................................................... 22 2.3. Componentes gráficos ......................................................................................... 22 2.4. Interfaz Gráfica ................................................................................................... 22 2.5. Multiplataforma .................................................................................................. 23 2.6. Código nativo ...................................................................................................... 23 2.7. Código interpretado............................................................................................. 24 2.8. Licencia de software ........................................................................................... 24 2.8.1. Partes de una licencia software ........................................................................... 25 2.8.2. Elementos objetivos de una licencia de software ................................................ 25 2.8.3. Clasificación de las licencias software ................................................................ 26 2.9. Bindings .............................................................................................................. 30 2.10. Lenguajes de programación ................................................................................ 30 2.10.1. C++ ..................................................................................................................... 32 2.10.2. Python ................................................................................................................. 33 2.10.3. C# ........................................................................................................................ 33 2.10.4. Ruby .................................................................................................................... 34 2.10.5. Java...................................................................................................................... 34 2.10.6. PHP ..................................................................................................................... 35 2.10.7. Javascript ............................................................................................................. 36 2.11. Widgets ............................................................................................................... 36 CAPÍTULO III 3.1. Introducción ........................................................................................................ 38 3.2. QT ....................................................................................................................... 39 3.2.1. Descripción ......................................................................................................... 39 3.2.2. Historia ................................................................................................................ 41 3.2.3. Versiones y mejoras ............................................................................................ 43 3.2.4. Características ..................................................................................................... 44 3.2.5. Ventajas ............................................................................................................... 46 3.3. GTK+ .................................................................................................................. 46 3.3.1. Descripción ......................................................................................................... 46 3.3.2. Principales widgets de GTK+: ............................................................................ 48 3.3.3. GUI’s Básicos ..................................................................................................... 50 3.3.4. Modelo de Objetos en GTK+ .............................................................................. 51 3.3.5. Entornos y Aplicaciones que utilizan GTK+ ...................................................... 51 3.3.6. Historia GTK+ .................................................................................................... 53 3.3.7. Características ..................................................................................................... 54 3.3.8. Versiones y mejoras ............................................................................................ 54 3.3.9. Ventajas y desventajas ........................................................................................ 56 3.4. wxWidgets .......................................................................................................... 57 3.4.1. Descripción ......................................................................................................... 57 3.4.2. Aplicaciones ........................................................................................................ 59 3.4.3. Historia wxWidgets............................................................................................. 60 3.4.4. Características ..................................................................................................... 61 3.4.5. Ventajas y desventajas ........................................................................................ 62 CAPÍTULO IV 4.1. Introducción ........................................................................................................ 65 4.2. Definición de parámetros para evaluación. ......................................................... 66 4.3. Criterios de evaluación........................................................................................ 68 4.4. Análisis Comparativo de Bibliotecas Multiplataforma Qt, GTK+ y wxWidgets 68 4.4.1. Parámetro de Portabilidad ................................................................................... 68 4.4.2. Parámetro de Productividad ................................................................................ 71 4.4.3. Parámetro de Aprendizaje ................................................................................... 73 4.4.4.
Recommended publications
  • Linux on the Road
    Linux on the Road Linux with Laptops, Notebooks, PDAs, Mobile Phones and Other Portable Devices Werner Heuser <wehe[AT]tuxmobil.org> Linux Mobile Edition Edition Version 3.22 TuxMobil Berlin Copyright © 2000-2011 Werner Heuser 2011-12-12 Revision History Revision 3.22 2011-12-12 Revised by: wh The address of the opensuse-mobile mailing list has been added, a section power management for graphics cards has been added, a short description of Intel's LinuxPowerTop project has been added, all references to Suspend2 have been changed to TuxOnIce, links to OpenSync and Funambol syncronization packages have been added, some notes about SSDs have been added, many URLs have been checked and some minor improvements have been made. Revision 3.21 2005-11-14 Revised by: wh Some more typos have been fixed. Revision 3.20 2005-11-14 Revised by: wh Some typos have been fixed. Revision 3.19 2005-11-14 Revised by: wh A link to keytouch has been added, minor changes have been made. Revision 3.18 2005-10-10 Revised by: wh Some URLs have been updated, spelling has been corrected, minor changes have been made. Revision 3.17.1 2005-09-28 Revised by: sh A technical and a language review have been performed by Sebastian Henschel. Numerous bugs have been fixed and many URLs have been updated. Revision 3.17 2005-08-28 Revised by: wh Some more tools added to external monitor/projector section, link to Zaurus Development with Damn Small Linux added to cross-compile section, some additions about acoustic management for hard disks added, references to X.org added to X11 sections, link to laptop-mode-tools added, some URLs updated, spelling cleaned, minor changes.
    [Show full text]
  • Porting a Window Manager from Xlib to XCB
    Porting a Window Manager from Xlib to XCB Arnaud Fontaine (08090091) 16 May 2008 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version pub- lished by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Contents List of figures i List of listings ii Introduction 1 1 Backgrounds and Motivations 2 2 X Window System (X11) 6 2.1 Introduction . .6 2.2 History . .6 2.3 X Window Protocol . .7 2.3.1 Introduction . .7 2.3.2 Protocol overview . .8 2.3.3 Identifiers of resources . 10 2.3.4 Atoms . 10 2.3.5 Windows . 12 2.3.6 Pixmaps . 14 2.3.7 Events . 14 2.3.8 Keyboard and pointer . 15 2.3.9 Extensions . 17 2.4 X protocol client libraries . 18 2.4.1 Xlib . 18 2.4.1.1 Introduction . 18 2.4.1.2 Data types and functions . 18 2.4.1.3 Pros . 19 2.4.1.4 Cons . 19 2.4.1.5 Example . 20 2.4.2 XCB . 20 2.4.2.1 Introduction . 20 2.4.2.2 Data types and functions . 21 2.4.2.3 xcb-util library . 22 2.4.2.4 Pros . 22 2.4.2.5 Cons . 23 2.4.2.6 Example . 23 2.4.3 Xlib/XCB round-trip performance comparison .
    [Show full text]
  • Gtk Drawing Area Example C
    Gtk Drawing Area Example C Abyssinian Cary always Indianised his examination if Amadeus is lowest or marshalling skywards. Ornithischian Rudd overruled, his deportation backscatters remilitarizing proud. Zodiacal Udale alkalizing: he repay his ceorl jazzily and observantly. End angle bracket iter to indicates data to c gtk drawing area Programming with gtkmm 3. You should only grab from gtk drawing area widget draws with either create. These programmatically hidden from the properties are put there are created and executable program that all gtk app into boxes, i am doing. This locus the 'traits' of the GtkDrawingArea widget are inherited to this class. GtkDrawingArea gtk-30 Valadoc. M cm else return cm m xm def drawself ctx area tops the egg. Gmcs pkggtk-sharp-20 rusrlibmono20MonoCairodll simplecs Here saying how we compile the example DrawingArea darea new. This source code of examples have thrown me at least we will create a button click to retrieve them into those who must be updated. How to integrate those header-only libraries and uses Catch as an example. We just ugly cast. The error comes from C I over no danger about tablet to drift this drawingrb. Useful for detriment to extract multiple copies of chair same dialog. For example if most have created a dialog box for entering some personal information you. Drawing operation draws the examples are the interior of. Application runs the example draws some way to be used for single cell renderer to this will execute it! This is prominent example in object-oriented behavior enforced in C by GTK. GtkDrawingArea getDrawingAreaStructbool transferOwnership false.
    [Show full text]
  • Ubuntu Unleashed 2013 Edition: Covering 12.10 and 13.04
    Matthew Helmke with Andrew Hudson and Paul Hudson Ubuntu UNLEASHED 2013 Edition 800 East 96th Street, Indianapolis, Indiana 46240 USA Ubuntu Unleashed 2013 Edition Editor-in-Chief Copyright © 2013 by Pearson Education, Inc. Mark Taub All rights reserved. No part of this book shall be reproduced, stored in a retrieval Acquisitions Editor system, or transmitted by any means, electronic, mechanical, photocopying, record- Debra Williams ing, or otherwise, without written permission from the publisher. No patent liability is assumed with respect to the use of the information contained herein. Although every Cauley precaution has been taken in the preparation of this book, the publisher and author Development Editor assume no responsibility for errors or omissions. Nor is any liability assumed for damages resulting from the use of the information contained herein. Michael Thurston ISBN-13: 978-0-672-33624-9 Managing Editor ISBN-10: 0-672-33624-3 Kristy Hart Project Editor The Library of Congress cataloging-in-publication data is on file. Jovana Shirley Printed in the United States of America Copy Editor First Printing December 2012 Charlotte Kughen Trademarks Indexer All terms mentioned in this book that are known to be trademarks or service marks have Angie Martin 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 Proofreader of any trademark or service mark. Language Logistics Warning and Disclaimer Technical Editors Every effort has been made to make this book as complete and as accurate as Chris Johnston possible, but no warranty or fitness is implied.
    [Show full text]
  • Haskell Communities and Activities Report – Fourth Edition – May 12, 2003
    Haskell Communities and Activities Report http://www.haskell.org/communities/ – fourth edition – May 12, 2003 Claus Reinke (editor), University of Kent, UK Perry Alexander, The University of Kansas, USA Krasimir Angelov, Bulgaria Sengan Baring-Gould, National Semiconductor Corporation Mark T.B. Carroll, Aetion Technologies LLC, USA Manuel Chakravarty, University of New South Wales, Australia Olaf Chitil, The University of York, UK Matthew Donadio Joe English, Advanced Rotorcraft Technology, Inc., USA Levent Erkok, OGI School of Science and Engineering, OHSU, USA Andre W B Furtado, Federal University of Pernambuco, Brazil Murray Gross, City University of New York, USA Jurriaan Hage, Utrecht University, The Netherlands Keith Hanna, University of Kent, UK Dean Herington, University of North Carolina at Chapel Hill, USA Johan Jeuring, Utrecht University, The Netherlands Ralf L¨ammel, VU and CWI, Amsterdam, The Netherlands Daan Leijen, Utrecht University, The Netherlands Rita Loogen, University of Marburg, Germany Christoph L¨uth,George Russell, and Christian Maeder, University of Bremen, Germany Simon Marlow, Microsoft Research Cambridge, UK Jens Petersen, Red Hat, Japan John Peterson, Yale University, USA Henrik Nilsson, Yale University, USA Rex Page, Oklahoma University, USA Sven Panne, Germany Simon Peyton Jones, Microsoft Research Cambridge, UK Bernie Pope, University of Melbourne, Australia Alastair Reid, Reid Consulting (UK) Ltd., UK Chris Ryder, University of Kent, UK Uwe Schmidt, Fachhochschule Wedel, Germany Axel Simon, University
    [Show full text]
  • Our Journey from Java to Pyqt and Web for Cern Accelerator Control Guis I
    17th Int. Conf. on Acc. and Large Exp. Physics Control Systems ICALEPCS2019, New York, NY, USA JACoW Publishing ISBN: 978-3-95450-209-7 ISSN: 2226-0358 doi:10.18429/JACoW-ICALEPCS2019-TUCPR03 OUR JOURNEY FROM JAVA TO PYQT AND WEB FOR CERN ACCELERATOR CONTROL GUIS I. Sinkarenko, S. Zanzottera, V. Baggiolini, BE-CO-APS, CERN, Geneva, Switzerland Abstract technology choices for GUI, even at the cost of not using Java – our core technology – for GUIs anymore. For more than 15 years, operational GUIs for accelerator controls and some lab applications for equipment experts have been developed in Java, first with Swing and more CRITERIA FOR SELECTING A NEW GUI recently with JavaFX. In March 2018, Oracle announced that Java GUIs were not part of their strategy anymore [1]. TECHNOLOGY They will not ship JavaFX after Java 8 and there are hints In our evaluation of GUI technologies, we considered that they would like to get rid of Swing as well. the following criteria: This was a wakeup call for us. We took the opportunity • Technical match: suitability for Desktop GUI to reconsider all technical options for developing development and good integration with the existing operational GUIs. Our options ranged from sticking with controls environment (Linux, Java, C/C++) and the JavaFX, over using the Qt framework (either using PyQt APIs to the control system; or developing our own Java Bindings to Qt), to using Web • Popularity among our current and future developers: technology both in a browser and in native desktop little (additional) learning effort, attractiveness for new applications.
    [Show full text]
  • Open Source Software: Avoiding the Pitfalls; Reaping the Rewards
    McCarthy Tétrault LLP Open Source Software: Avoiding the Pitfalls; Reaping the Rewards Charles Morgan Presentation to the ALAI Auberge Le Saint-Gabriel September 24, 2003 McCarthy Tétrault Open Source »What is Open Source? »Brief History of Open Source »OSI Open Source Definition »Open Source Licenses »Open Source Business Models »Rewards & Pitfalls »Open Source Tips McCarthy Tétrault LLP What is Open Source? » Open source software can generally be defined by four freedoms: • The freedom to use the program • The freedom to examine and change the source code • The freedom to distribute the program • The freedom to distribute any changes to the source code McCarthy Tétrault LLP What is Open Source? » Nine core principles: • Free Distribution – no restriction on distribution of the software as a component of an aggregate software distribution (including royalty or fee) • Source Code - the source code must be accessible • Derived Works - license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software • Integrity of the Author’s Source Code - the license may restrict source code from being distributed in modified form only if the license allows the distribution of ‘patch files’ with the source code McCarthy Tétrault LLP What is Open Source? • No Discrimination Against Persons or Groups - the license must not discriminate against any person or group of persons • No Discrimination Against Fields of Endeavor - the license must not restrict anyone from making
    [Show full text]
  • Rapid GUI Development with Qtruby
    Rapid GUI Development with QtRuby Caleb Tennis The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas BOOKLEET © Many of the designations used by manufacturers and sellers to distin- guish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Pro- grammer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC. Qt® is a registered trademark of Trolltech in Norway, the United States and other countries. Useful Friday Links • Source code from this book and Every precaution was taken in the preparation of this book. However, the other resources. publisher assumes no responsibility for errors or omissions, or for dam- • Free updates to this PDF • Errata and suggestions. To report ages that may result from the use of information (including program list- an erratum on a page, click the ings) contained herein. link in the footer. To see what we’re up to, please visit us at http://www.pragmaticprogrammer.com Copyright © 2006 The Pragmatic Programmers LLC. All rights reserved. This PDF publication is intended for the personal use of the individual whose name appears at the bottom of each page. This publication may not be disseminated to others by any means without the prior consent of the publisher. In particular, the publication must not be made available on the Internet (via a web server, file sharing network, or any other means).
    [Show full text]
  • Introducción a Wxpython
    Lic. Marcelo Fernández [email protected] - http://blog.marcelofernandez.info Publicado bajo Licencia Creative Commons - BY, excepto las imágenes y logos tomadas de sitios de Internet Introducción - GUIs en Python ¿Qué es una GUI? Bibliotecas: ”Bindings” o ”Wrappers” Disponibles en Python: Tcl/Tk: Instalada por defecto. wxPython: wrapper de wxWidgets (antes wxWindows) PyGTK: wrapper de GTK. PyQT: wrapper de QT. (Ver comparativa en http://python.org.ar/pyar/InterfacesGraficas) Introducción - wxPython Lenguajes MiMi AplicaciónAplicación PythonPython AplicaciónAplicación X X Bindings HaskellHaskell WxPython wxD wxErlang wxPerl WxPython wxRuby wxHaskell Otros wxD wxErlang wxPerl Python/C++Python/C++ wxRuby wxHaskell Otros wxWidgetswxWidgets C++C++ WindowsWindows Linux,Unix/GTKLinux,Unix/GTK MacMac OSXOSX OtrasOtras Win32Win32 / / Win64 Win64 wxGTKwxGTK wxMacwxMac wxX11,wxDFB,wxMotif...wxX11,wxDFB,wxMotif... Widgets / Plataformas Ver más en http://wiki.wxwidgets.org/General_Information Introducción - wxWidgets wxPython es una biblioteca para usar wxWidgets (C++) desde Python Hereda sus características Robusta, años evolucionando (1992). Pensado para ser Multiplataforma desde el inicio. Conserva el Look and Feel del entorno y su velocidad, ya que utiliza componentes GUI estándar de cada SO. Permite embeber componentes nativos. LGPL. Aplicaciones con cualquier licencia. Windows, Linux, Mac y más con casi el mismo código fuente, sólo recompilando. Introducción - wxWidgets Introducción - wxWidgets Introducción - wxPython
    [Show full text]
  • What's New in Qt 6 on the Desktop?
    What’s new in Qt 6 on the desktop? Qt Desktop Days 2020 Giuseppe D’Angelo [email protected] About me ● Senior Software Engineer, KDAB ● Developer & Trainer ● Qt Approver ● Ask me about QtCore, QtGui, QtQuick, ... – And also about Modern C++, 3D graphics 2 The Road to Qt 6 Why Qt 6? ● Do architectural changes that simply cannot be done in Qt 5 ● Binary compatibility break – Applications must be recompiled ● Re-engineer features ● But also do some necessary housecleaning, drop ballast 4 Design Goals ● Keep as much (source) compatibility with Qt 5 as possible ● Add property bindings in C++ ● Improve QML & language bindings – Reduce overhead, increase type safety, compile to C++ ● Tackle the changing landscape in 3D APIs ● Modularize Qt even more 5 Keep the Good Parts! ● Easy to use APIs ● General purpose, cross platform application framework ● Make 90% easy to achieve, and 99.9% possible ● Excellent developer support, documentation, tooling ● Nurture the ecosystem around Qt 6 Looking ahead ● Qt 4: released 2005, EOL 2015 – ~30 modules ● Qt 5: released 2012, EOL 2023 – ~50 modules ● Qt 6: released 2020, EOL 20?? ● How to plan for the next decade? 7 Technical foundations ● C++17 – MSVC 2019, GCC 8, Apple Clang ● CMake buildsystem for Qt – qmake still supported for end user applications ● 3D API abstraction (Qt RHI) 8 Release Plan September 2020 October 2020 November 2020 December 2020 Alpha Beta Release Candidate Qt 6.0 Final Release ● Qt 6.0 feature freeze reached ● Binary weekly snapshots (already) available via the installer ● Reduced
    [Show full text]
  • Ubuntu: Unleashed 2017 Edition
    Matthew Helmke with Andrew Hudson and Paul Hudson Ubuntu UNLEASHED 2017 Edition 800 East 96th Street, Indianapolis, Indiana 46240 USA Ubuntu Unleashed 2017 Edition Editor-in-Chief Copyright © 2017 by Pearson Education, Inc. Mark Taub All rights reserved. Printed in the United States of America. This publication is protected Acquisitions Editor by copyright, and permission must be obtained from the publisher prior to any prohib- Debra Williams ited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information Cauley regarding permissions, request forms and the appropriate contacts within the Pearson Managing Editor Education Global Rights & Permissions Department, please visit www.pearsoned.com/ permissions/. Sandra Schroeder Many of the designations used by manufacturers and sellers to distinguish their Project Editor products are claimed as trademarks. Where those designations appear in this book, and Lori Lyons the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. Production Manager The author and publisher have taken care in the preparation of this book, but make Dhayanidhi no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in Proofreader connection with or arising out of the use of the information or programs contained Sasirekha herein. Technical Editor For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content José Antonio Rey particular to your business, training goals, marketing focus, or branding interests), Editorial Assistant please contact our corporate sales department at [email protected] or (800) 382-3419.
    [Show full text]
  • Multiplatformní GUI Toolkity GTK+ a Qt
    Multiplatformní GUI toolkity GTK+ a Qt Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI GUI toolkit (widget toolkit) (1) = programová knihovna (nebo kolekce knihoven) implementující prvky GUI = widgety (tlačítka, seznamy, menu, posuvník, bary, dialog, okno atd.) a umožňující tvorbu GUI (grafického uživatelského rozhraní) aplikace vlastní jednotný nebo nativní (pro platformu/systém) vzhled widgetů, možnost stylování nízkoúrovňové (Xt a Xlib v X Windows System a libwayland ve Waylandu na unixových systémech, GDI Windows API, Quartz a Carbon v Apple Mac OS) a vysokoúrovňové (MFC, WTL, WPF a Windows Forms v MS Windows, Cocoa v Apple Mac OS X, Motif/Lesstif, Xaw a XForms na unixových systémech) multiplatformní = pro více platforem (MS Windows, GNU/Linux, Apple Mac OS X, mobilní) nebo platformově nezávislé (Java) – aplikace může být také (většinou) událostmi řízené programování (event-driven programming) – toolkit v hlavní smyčce zachytává události (uživatelské od myši nebo klávesnice, od časovače, systému, aplikace samotné atd.) a umožňuje implementaci vlastních obsluh (even handler, callback function), objektově orientované programování (objekty = widgety aj.) – nevyžaduje OO programovací jazyk! Jan Outrata (Univerzita Palackého v Olomouci) Multiplatformní GUI toolkity duben 2015 1 / 10 GUI toolkit (widget toolkit) (2) language binding = API (aplikační programové rozhraní) toolkitu v jiném prog. jazyce než původní API a toolkit samotný GUI designer/builder = WYSIWYG nástroj pro tvorbu GUI s využitím toolkitu, hierarchicky skládáním prvků, z uloženého XML pak generuje kód nebo GUI vytvoří za běhu aplikace nekomerční (GNU (L)GPL, MIT, open source) i komerční licence např. GTK+ (C), Qt (C++), wxWidgets (C++), FLTK (C++), CEGUI (C++), Swing/JFC (Java), SWT (Java), JavaFX (Java), Tcl/Tk (Tcl), XUL (XML) aj.
    [Show full text]