Você está na página 1de 21

FRAMEWORK

An introduction to a cross platform application and user interface framework

Heikki Niiranen Kristoffer Snabb

WHAT IS QT?
SHORT ANSWER:
Its a cross platform application and user interface framework

LONG ANSWER:
Qt includes the following: A modular C++ class library Collection of development tools An IDE - Qt Creator An GUI designer - Qt Designer Everything is cross-platform

HISTORY
Company founded Project Idea starts 1990 1991 1993 KDE First decides to Qt release use Qt 2.0 1995 Qt 3.0 Qt 4.0 2005 Nokia buyout 2008 Now

Qt 4.7.1 2010

1997 1999 2000 2001

LICENSING
HISTORICALLY:
Two licenses: Proprietary license for commercial development Windows and OS X libraries available only on proprietary license An open source license for open source linux development

LICENSING
AFTER NOKIA BUYOUT:
LGPL License for all platforms Allows dynamic linking to library Any modications to the Qt library must be shared under LGPL Commercial license Allows static linking to library for performance optimization Allows the modication of Qt libraries without sharing the result Full license costs 6395 and includes 12 months of support

MAJOR USERS OF QT

Autodesk Maya 2011

MAJOR USERS OF QT

Skype

MAJOR USERS OF QT

VLC

MAJOR USERS OF QT

Google Earth

SUPPORTED PLATFORMS
OFFICIALLY SUPPORTED

C++ is the ofcially supported language Nokia supports Python with PySide QML is a new declarative language for UI development

COMMUNITY SUPPORTED
Java, Python, C#, Pascal, Perl, PHP, you name it. Ports for Android and iPhone are in developement

QT DEVELOPMENT TOOLS
QT CREATOR
Cross-platform C++ and Javascript IDE

QT DESIGNER
Cross-platform tools for UI design

QT LINGUIST
Tool for localizing applications

QMAKE
Tool to easily generate makeles

QT CREATOR

QT DESIGNER

FEATURES OF QT
Cross platform support Applications written using Qt components are compatible with all supported platforms Uses native platform UI-rendering to get the correct look & feel Does not help you with the different HIGs on platforms Extensive class library for commonly used functionalities

CLASS STRUCTURE
QT CLASSES:

QT CORE
The base Qt module that other modules rely on Provides basic data structures and their supporting functions e.g. QObject - the base class of all Qt classes Signals and Slots mechanism

QT GUI
The QtGui module extends QtCore with GUI functionality Includes widgets, layout styles and other needed objects like bitmap images and user actions. e.g. QWidget - the base class for all UI objects

QT NETWORK
The QtNetwork module offers classes that allow for easy TCP/IP networking Includes objects for TCP and UDP sockets implementations of HTTP and FTP protocols

PHONON
The Phonon module is a multimedia API originally developed for KDE but is not a part of Qt Allows programmers to create cross platform multimedia applications that take advantage of the platforms native multimedia engine (Quicktime, GStreamer , DirectShow)

QT ROADMAP
SOME INTERESTING UPCOMING FEATURES
Better HTML5 support HTTP improvement for REST Qt Web runtime Qt Quick Designer Near Field Communication API Bluetooth API OpenCL

QML & QT QUICK


A NEW FASTER, EASIER UI DESIGN METHOD
QML is a declarative programming language Used with javascript and Qt tools to allow for fast UI design with little or no prior programming experience Development and structure is similar to web technologies Especially targeted towards mobile UI development Applications are run in Qt Declarative runtime, either in separate application or inside C++ Qt application