IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Licenses Used in Qt

Information about other licenses and third-party code used in Qt.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Licenses Used in Qt

Qt contains some code that is not provided under the GNU Lesser General Public License (LGPL) or the Qt Commercial License, but rather under specific licenses from the original authors.

The Qt Company gratefully acknowledges these and other contributions to Qt. We recommend that programs that use Qt also acknowledge these contributions, and quote these license statements in an appendix to the documentation.

You only need to comply with (and acknowledge) the licenses of the third-party components that you are using with your application. Click the name of the component to see the licensing details.

Third-party Licenses

The following table lists parts (modules) of Qt 6.4.3 that incorporate code licensed under third-party open-source licenses:

  • Coffee Machine Example: A Qt Quick application with a state-based custom user interface.

  • Getting Started Programming with Qt Quick: A tutorial for Qt Quick based on an alarms application.

  • In-App purchasing demo: A complete mobile application that demonstrates purchasing in-app products.

  • Qt Quick Demo - Calqlatr: A QML app designed for portrait devices that uses custom components, animated with AnimationController, and JavaScript for the application logic.

  • Qt Quick Demo - Clocks: A QML clock application that demonstrates using a ListView type to display data generated by a ListModel and a SpringAnimation type to animate images.

  • Qt Quick Demo - Photo Surface: A QML app for touch devices that uses a Repeater with a FolderListModel to access content in a folder, and a PinchArea that contains a MouseArea to handle pinch gestures on the fetched content.

  • Qt Quick Demo - Photo Viewer: A QML photo viewer that uses XmlListModel and XmlListModelRole to download Flickr feeds, and Package to display the photos in different views.

  • Qt Quick Demo - RESTful API client Address Book: Example of how to create a RESTful API client.

  • Qt Quick Demo - RSS News: A QML RSS news reader that uses XmlListModel and XmlListModelRole custom QML types to download XML data, ListModel and ListElement to create a category list, and ListView to display the data.

  • Qt Quick Demo - StocQt: A configurable stock chart for the NASDAQ-100.

Active Qt

  • COM App Example (ActiveQt): The COM App example shows how to use ActiveQt to develop a Qt application that can be automated via COM. Different QObject based classes are exposed as COM objects that communicate with the GUI of the running Qt application. The APIs of those COM objects has been designed to resemble the APIs of standard COM applications; i.e. those from Microsoft Office.

  • Hierarchy Example (ActiveQt): The Hierarchy example is shows how to write an in-process ActiveX control. The control is a QWidget subclass with child widgets that are accessible as sub-types.

  • Media Player Example (ActiveQt): The Media Player example uses the Microsoft Media Player ActiveX control to implement a functional media player application.

  • Menus Example (ActiveQt): The Menus example demonstrates the use of QMenuBar and QStatusBar in a QMainWindow to implement an in-place active control.

  • Multiple Example (ActiveQt): The Multiple example demonstrates the implementation of a QAxFactory to provide multiple ActiveX controls in a single in process ActiveX server using the QAXFACTORY_EXPORT() macro. The ActiveX controls in this example are simple QWidget subclasses that reimplement QWidget::paintEvent().

  • OpenGL Example (ActiveQt): The OpenGL example demonstrates the use of the default factory and QAxFactory::isServer(), and the implementation of an additional COM interface using QAxBindable and QAxAggregated. The server executable can run both as an ActiveX server and as a stand-alone application.

  • Qutlook Example (ActiveQt): The Qutlook example demonstrates the use of ActiveQt to automate Outlook. The example makes use of the dumpcpp tool to generate a C++ namespace for the type library describing the Outlook Object Model.

  • Simple Example (ActiveQt): The Simple example demonstrates the use of QAxBindable and QAxFactory.

  • Wrapper Example (ActiveQt): The Wrapper example demonstrates how to export existing QWidget classes as ActiveX controls, and the use of QAxFactory together with the QAXFACTORY_EXPORT() macro. ActiveX controls in this example are the standard button classes QPushButton, QCheckBox and QRadioButton as provided by Qt.

Qt 3D

Qt Assistant Manual

Qt Bluetooth

Qt Charts

Qt CoAP

Qt Concurrent

Qt Core

  • Bindable Properties Example: Demonstrates how the usage of bindable properties can simplify your C++ code.

  • Cbordump Example: The Cbordump example demonstrates how to parse files in CBOR-format.

  • Contiguous Cache Example: The Contiguous Cache example shows how to use QContiguousCache to manage memory usage for very large models. In some environments memory is limited and, even when it isn't, users still dislike an application using excessive memory. Using QContiguousCache to manage a list, rather than loading the entire list into memory, allows the application to limit the amount of memory it uses, regardless of the size of the data set it accesses.

  • Convert Example: The Convert example demonstrates how to convert between different serialization formats.

  • Custom Type Example: The Custom Type example shows how to integrate a custom type into Qt's meta-object system.

  • JSON Save Game Example: The JSON Save Game example demonstrates how to save and load a small game using QJsonDocument, QJsonObject and QJsonArray.

  • Local Fortune Client Example: Demonstrates using QLocalSocket for a simple local service client.

  • Local Fortune Server Example: Demonstrates using QLocalServer and QLocalSocket for serving a simple local service.

  • MIME Type Browser Example: Shows the hierarchy of MIME types and can be used to determine the MIME type of a file.

  • Mandelbrot Example: The Mandelbrot example demonstrates multi-thread programming using Qt. It shows how to use a worker thread to perform heavy computations without blocking the main thread's event loop.

  • Qt Android Notifier: Demonstrates calling Java code from Qt in an Android application.

  • Queued Custom Type Example: Demonstrates multi-thread programming using Qt.

  • Semaphores Example: Demonstrates multi-thread programming using Qt.

  • Shared Memory Example: Demonstrates doing inter-process communication using shared memory with the QSharedMemory class.

  • Wait Conditions Example: Demonstrates multi-thread programming using Qt.

Qt D-Bus

Qt Data Visualization

Qt Designer Manual

Qt GUI

Qt HTTP Server

Qt Help

Qt Linguist Manual

Qt MQTT

Qt Multimedia

Qt NFC

  • Annotated URL Example: An example showing reading from formatted NFC Data Exchange Format (NDEF) messages.

  • NDEF Editor Example: An example of reading and writing NFC Data Exchange Format (NDEF) messages to NFC Forum Tags.

Qt Network

Qt Network Authorization

Qt OPC UA

Qt OpenGL

  • 2D Painting Example: The 2D Painting example shows how QPainter and QOpenGLWidget can be used together to display accelerated 2D graphics on supported hardware.

  • Cube OpenGL ES 2.0 example: The Cube OpenGL ES 2.0 example shows how to write mouse rotatable textured 3D cube using OpenGL ES 2.0 with Qt. It shows how to handle polygon geometries efficiently and how to write simple vertex and fragment shader for programmable graphics pipeline. In addition it shows how to use quaternions for representing 3D object orientation.

  • Hello GL2 Example: The Hello GL2 example demonstrates the basic use of the OpenGL-related classes provided with Qt.

  • Hello GLES3 Example: The Hello GLES3 example demonstrates easy, cross-platform usage of OpenGL ES 3.0 functions via QOpenGLExtraFunctions in an application that works identically on desktop platforms with OpenGL 3.3 and mobile/embedded devices with OpenGL ES 3.0.

  • OpenGL Window Example: This example shows how to create a minimal QWindow based application for the purpose of using OpenGL.

  • Textures Example: The Textures example demonstrates the use of Qt's image classes as textures in applications that use both OpenGL and Qt to display graphics.

Qt PDF

Qt Positioning

  • GeoFlickr (QML): The GeoFlickr example shows how to use the user's current position to fetch local content from a web service.

  • Log File Position Source (C++): Logfile Position Source shows how to create and work with a custom position source. It can be useful for simulating GPS data, or when the data is received in some custom format.

  • SatelliteInfo (C++/QML): The SatelliteInfo example shows the available satellites at the user's current position and marks the satellites currently contributing to the GPS fix as pink.

  • Weather Info (C++/QML): The Weather Info example shows how to use the user's current position to retrieve local content from a web service in a C++ plugin for QML.

Qt QML

Qt Quick

Qt Quick 3D

Qt Quick 3D Physics

Qt Quick Controls

Qt Remote Objects

Qt SCXML

Qt SQL

  • Books: Shows how to use Qt SQL classes with a model/view framework.

  • Cached Table Example: The Cached Table example shows how a table view can be used to access a database, caching any changes to the data until the user explicitly submits them using a push button.

  • Drill Down Example: The Drill Down example shows how to read data from a database as well as submit changes, using the QSqlRelationalTableModel and QDataWidgetMapper classes.

  • Master Detail Example: The Master Detail Example shows how to present data from different data sources in the same application. The album titles, and the corresponding artists and release dates, are kept in a database, while each album's tracks are stored in an XML file.

  • Query Model Example: The Query Model example shows how to make customized versions of data obtained from a SQL query, using a model that encapsulates the query and table views to display the results.

  • Relational Table Model Example: The Relational Table Model example shows how to use table views with a relational model to visualize the relations between items in a database.

  • SQL Browser: The SQL Browser example shows how a data browser can be used to visualize the results of SQL statements on a live database.

  • SQL Widget Mapper Example: The SQL Widget Mapper example shows how to use a map information from a database to widgets on a form.

  • Table Model Example: The Table Model example shows how to use a specialized SQL table model with table views to edit information in a database.

Qt SVG

Qt Sensors

Qt Serial Bus

Qt Serial Port

Qt Spatial Audio

Qt State Machine

  • Animated Tiles Example: The Animated Tiles example animates items in a graphics scene.

  • Event Transitions Example: The Event Transitions example shows how to use event transitions, a feature of Qt State Machine Framework.

  • Factorial States Example: The Factorial States example shows how to use Qt State Machine Overview to calculate the factorial of an integer.

  • Move Blocks Example: The Move Blocks example shows how to animate items in a QGraphicsScene using a QStateMachine with a custom transition.

  • Pad Navigator Example: Demonstrates how to create animated user interface.

  • Ping Pong States Example: The Ping Pong States example shows how to use parallel states together with custom events and transitions in Qt State Machine Framework.

  • Rogue Example: The Rogue example shows how to use the Qt state machine for event handling.

  • States Example: The States example shows how to use the Qt state machine to play animations.

  • Stickman Example: The Stickman example shows how to animate transitions in a state machine to implement key frame animations.

  • Sub-Attaq: This example shows Qt's ability to combine the animation framework and the state machine framework to create a game.

  • Traffic Light Example: The Traffic Light example shows how to use Qt State Machine Overview to implement the control flow of a traffic light.

  • Two-way Button Example: The Two-way button example shows how to use Qt State Machine Framework to implement a simple state machine that toggles the current state when a button is clicked.

Qt Test

Qt TextToSpeech

Qt UI Tools

Qt Virtual Keyboard

Qt Wayland Compositor

Qt WebChannel

Qt WebEngine

Qt WebSockets

  • Echo Client Example: Describes how to use the WebSocket API for creating a simple echo client.

  • Echo Server Example: Shows how to create a simple server application that sends back the messages it receives.

  • QML WebSocket Client Example: Explains how to program a QML WebSocket client example.

  • QML WebSocket Server Example: A simple example that shows how to use a QML WebSocketServer.

  • SSL Echo Client Example: Shows how to use the QWebSocket class to implement an echo client over a secure connection (wss).

  • SSL Echo Server Example: Shows how to use the QWebSocketServer class for implementing a simple echo server over secure sockets (wss).

  • Simple Chat Example: Shows how to use the QWebSocket and QWebSocketServer classes for creating a minimalistic chat application over the WebSocket protocol.

Qt WebView

Qt Widgets

  • 40000 Chips: Visualizes a huge graphic view scene with 40000 chip items.

  • Address Book Example: The address book example shows how to use proxy models to display different views onto data from a single model.

  • Affine Transformations: Demonstrates how affine transformations in QPainter works.

  • Analog Clock Example: The Analog Clock example shows how to draw the contents of a custom widget.

  • Anchor Layout Example: Demonstrates anchor layout in a graphics view scene.

  • Basic Drawing Example: The Basic Drawing example shows how to display basic graphics primitives in a variety of styles using the QPainter class.

  • Basic Graphics Layouts Example: Demonstrates how to create basic graphics layout.

  • Basic Layouts Example: Shows how to use the standard layout managers.

  • Basic Sort/Filter Model Example: The Basic Sort/Filter Model example illustrates how to use QSortFilterProxyModel to perform basic sorting and filtering.

  • Blur Picker Effect Example: Demonstrates how to apply graphical effects on items in the view.

  • Border Layout Example: Shows how to arrange child widgets along a border.

  • Calculator Example: The example shows how to use signals and slots to implement the functionality of a calculator widget, and how to use QGridLayout to place child widgets in a grid.

  • Calendar Example: The Calendar example shows how to create rich text content and display it using a rich text editor.

  • Calendar Widget Example: The Calendar Widget example shows use of QCalendarWidget.

  • Character Map Example: The Character Map example shows how to create a custom widget that can both display its own content and respond to user input.

  • Chart Example: The Chart example shows how to create a custom view for the model/view framework.

  • Class Wizard Example: The Class Wizard example shows how to implement linear wizards using QWizard.

  • Code Editor Example: The Code Editor example shows how to create a simple editor that has line numbers and that highlights the current line.

  • Colliding Mice Example: Demonstrates how to animate items on a graphics view.

  • Color Editor Factory Example: This example shows how to create an editor that can be used by a QItemDelegate.

  • Combo Widget Mapper Example: The Combo Widget Mapper example shows how to use a custom delegate to map information from a model to specific widgets on a form.

  • Completer Example: The Completer example shows how to provide string-completion facilities for an input widget based on data provided by a model.

  • Composition Modes: Demonstrates how Composition Modes work in QPainter.

  • Concentric Circles Example: Demonstrates the improved quality that antialiasing and floating point precision gives.

  • Custom Completer Example: The Custom Completer example shows how to provide string-completion facilities for an input widget based on data provided by a model. The completer pops up suggestions for possible words based on the first three characters input by the user and the user's choice of word is inserted into the TextEdit using QTextCursor.

  • Custom Sort/Filter Model Example: The Custom Sort/Filter Model example illustrates how to subclass QSortFilterProxyModel to perform advanced sorting and filtering.

  • Diagram Scene Example: Demonstrate how to use the Graphics View framework.

  • Digital Clock Example: The Digital Clock example shows how to use QLCDNumber to display a number with LCD-like digits.

  • Dir View Example: This example demonstrates the usage of a tree view, and smooth flicking on a touchscreen.

  • Dock Widgets Example: The Dock Widgets example shows how to add dock windows to an application. It also shows how to use Qt's rich text engine.

  • Drag and Drop Puzzle Example: The Drag and Drop Puzzle example demonstrates a way of using the drag and drop system with item view widgets.

  • Drag and Drop Robot Example: Demonstrates how to drag and drop items in a graphics view.

  • Draggable Icons Example: The Draggable Icons example shows how to drag and drop image data between widgets in the same application, and between different applications.

  • Draggable Text Example: Illustrates how to drag and drop text between widgets.

  • Drop Site Example: The example shows how to distinguish the various MIME formats available in a drag and drop operation.

  • Dynamic Layouts Example: Shows how to re-orient widgets in running applications.

  • Easing Curves Example: The Easing Curves example shows how to use easing curves to control the speed of an animation.

  • Echo Plugin Example: This example shows how to create a Qt plugin.

  • Editable Tree Model Example: This example shows how to implement a simple item-based tree model that can be used with other classes the model/view framework.

  • Elastic Nodes Example: Demonstrates how to interact with graphical items in a scene.

  • Elided Label Example: This example creates a widget similar to QLabel, that elides the last visible line, if the text is too long to fit the widget's geometry.

  • Embedded Dialogs: Demonstrates how to embed dialogs into a graphics view.

  • Extension Example: The Extension example shows how to add an extension to a QDialog using the QAbstractButton::toggled() signal and the QWidget::setVisible() slot.

  • Fade Message Effect Example: Demonstrates how to apply effects on items in the view.

  • Fetch More Example: The Fetch More example shows how to add items to an item view model on demand.

  • Find Files Example: A dialog for finding files in a specified folder.

  • Finger Paint Example: Shows the use of a touchscreen to make a simple painting application.

  • Flow Layout Example: Shows how to arrange widgets for different window sizes.

  • Font Sampler Example: The Font Sampler example shows how to preview and print multi-page documents.

  • Fridge Magnets Example: The Fridge Magnets example illustrates how to move around several types of MIME-encoded data with drag and drop.

  • Frozen Column Example: This example demonstrates how to freeze a column within a QTableView.

  • Getting Started Programming with Qt Widgets: A tutorial for Qt Widgets based notepad application.

  • Gradients: Shows how gradients can be used with QPainter.

  • Graphics View Flow Layout Example: Demonstrates flow layout on a graphics view scene.

  • Group Box Example: The Group Box example shows how to use the different kinds of group boxes in Qt.

  • I18N Example: The Internationalization (I18N) example demonstrates Qt's support for translated text. Developers can write the initial application text in one language, and translations can be provided later without any modifications to the code. It also demonstrates how to detect the system language settings and show the UI in the appropriate language.

  • Icons Example: The Icons example shows how QIcon can generate pixmaps reflecting an icon's state, mode and size.

  • Image Composition Example: Shows how composition modes work in QPainter.

  • Image Gestures Example: Demonstrates the use of simple gestures in a widget.

  • Image Viewer Example: The example shows how to combine QLabel and QScrollArea to display an image.

  • Interview: This example demonstrates the usage of the model/view framework.

  • Item Views Puzzle Example: The Puzzle example shows how to enable drag and drop with a custom model to allow items to be transferred between a view and another widget.

  • License Wizard Example: The License Wizard example shows how to implement complex wizards in Qt.

  • Line Edits Example: The Line Edits example demonstrates the many ways that QLineEdit can be used, and shows the effects of various properties and validators on the input and output supplied by the user.

  • MDI Example: The MDI example shows how to implement a Multiple Document Interface using Qt's QMdiArea class.

  • Main Window: The Main Window example shows Qt's extensive support for tool bars, dock windows, menus, and other standard application features.

  • Menus Example: The Menus example demonstrates how menus can be used in a main window application.

  • Mouse Button Tester: The 'Mouse Button Tester' example demonstrates how to reimplement mouse events within a custom class. You can also use this program to verify that Qt is actually receiving mouse events from your mouse.

  • Movie Example: The Movie example demonstrates how to use QMovie and QLabel to display animations.

  • Order Form Example: The Order Form example shows how to generate rich text documents by combining a simple template with data input by the user in a dialog.

  • Painter Paths Example: The Painter Paths example shows how painter paths can be used to beuild complex shapes for rendering.

  • Part 1 - Designing the User Interface: Describes how to code the user interface of the Address Book Example. This first part covers the design of the basic graphical user interface (GUI) for our address book application.

  • Part 2 - Adding Addresses: Describes the code for inserting records in the Address Book Example.

  • Part 3 - Navigating between Entries: Explains the code that enables navigating the contacts.

  • Part 4 - Editing and Removing Addresses: Explains how to add edit and remove functionality.

  • Part 5 - Adding a Find Function: Describes how to add a find function.

  • Part 6 - Loading and Saving: Describes how to add save and load functionality.

  • Part 7 - Additional Features: Describes how to export data in VCard format.

  • Path Stroking: The Path Stroking example shows various types of pens that can be used with QPainter.

  • Pinch Zoom Example: Shows how to recognize a gesture.

  • Pixelator Example: The Pixelator example shows how delegates can be used to customize the way that items are rendered in standard item views.

  • Plug & Paint Basic Tools Example: A plugin providing the basic tools for painting functionality.

  • Plug & Paint Example: Demonstrates how to extend Qt applications using plugins.

  • Plug & Paint Extra Filters Example: A plugin providing the extra filters.

  • QRegularExpression Example: The QRegularExpression example shows how regular expressions in Qt are applied to text by providing an environment in which new regular expressions can be created and tested on custom text strings.

  • Qt Widgets - Application Example: The Application example shows how to implement a standard widget application with menus, toolbars, and a status bar. The example itself is a simple text editor program built around QPlainTextEdit.

  • SDI Example: The SDI example shows how to create a Single Document Interface. It uses a number of top-level windows to display the contents of different text files.

  • Screenshot Example: The Screenshot example shows how to take a screenshot of the desktop.

  • Scribble Example: The Scribble example shows how to reimplement some of QWidget's event handlers to receive the events generated for the application's widgets.

  • Settings Editor Example: The Settings Editor example shows how Qt's standard settings support is used in an application by providing an editor that enables the user to view the settings for installed applications, and modify those that can be edited.

  • Shaped Clock Example: The Shaped Clock example shows how to apply a translucent background and a widget mask to a top-level widget to produce a shaped window.

  • Simple Anchor Layout Example: Demonstrates anchor layout on a graphics view scene.

  • Simple DOM Model Example: The Simple DOM Model example shows how an existing class can be adapted for use with the model/view framework.

  • Simple Tree Model Example: The Simple Tree Model example shows how to use a hierarchical model with Qt's standard view classes.

  • Simple Widget Mapper Example: The Simple Widget Mapper example shows how to use a widget mapper to display data from a model in a collection of widgets.

  • Sliders Example: The Sliders example shows how to use the different types of sliders available in Qt: QSlider, QScrollBar and QDial.

  • Spin Box Delegate Example: The Spin Box Delegate example shows how to create an editor for a custom delegate in the model/view framework by reusing a standard Qt editor widget.

  • Spin Boxes Example: The Spin Boxes example shows how to use the many different types of spin boxes available in Qt, from a simple QSpinBox widget to more complex editors like the QDateTimeEdit widget.

  • Spreadsheet: The Spreadsheet example shows how to create a simple spreadsheet application.

  • Standard Dialogs Example: The Standard Dialogs example shows the standard dialogs that are provided by Qt.

  • Star Delegate Example: The Star Delegate example shows how to create a delegate that can paint itself and that supports editing.

  • Style Plugin Example: This example shows how to create a plugin that extends Qt with a new GUI look and feel.

  • Style Sheet Example: The Style Sheet Example shows how to use style sheets.

  • Styles Example: The Styles example illustrates how to create custom widget drawing styles using Qt, and demonstrates Qt's predefined styles.

  • Syntax Highlighter Example: The Syntax Highlighter example shows how to perform simple syntax highlighting.

  • System Tray Icon Example: The System Tray Icon example shows how to add an icon with a menu and popup messages to a desktop environment's system tray.

  • Tab Dialog Example: The Tab Dialog example shows how to construct a tab dialog using the QTabWidget class.

  • Tablet Example: This example shows how to use a Wacom tablet in Qt applications.

  • Tetrix Example: The Tetrix example is a Qt version of the classic Tetrix game.

  • Text Edit: The Text Edit example shows Qt's rich text editing facilities in action.

  • Tool Tips Example: The Tool Tips example shows how to provide static and dynamic tool tips for an application's widgets.

  • Touch Dials Example: Shows how to apply touch to a set of standard Qt widgets.

  • Touch Knobs Example: Shows how to create custom controls that accept touch input.

  • Transformations Example: The Transformations example shows how transformations influence the way that QPainter renders graphics primitives.

  • Tree Model Completer Example: The Tree Model Completer example shows how to provide completion facilities for a hierarchical model, using a period as the separator to access Child, GrandChild and GrandGrandChild level objects.

  • Trivial Wizard Example: The Trivial Wizard example illustrates how to create a linear three-page registration wizard using three instances of QWizardPage and one instance of QWizard.

  • Undo Framework: This example shows Qt's undo framework in action.

  • Undo Framework Example: This example shows how to implement undo/redo functionality with the Qt undo framework.

  • Validators Example: The Validators example shows the signal emission behavior of input validators.

  • Vector Deformation: Demonstrates how to manipulate the elements of a QPainterPath.

  • Weather Anchor Layout Example: Demonstrates anchor layout on a graphics view scene.

  • Widgets Gallery Example: The Widgets Gallery example shows widgets relevant for designing UIs.

  • Widgets Tutorial - Child Widgets:

  • Widgets Tutorial - Creating a Window:

  • Widgets Tutorial - Nested Layouts:

  • Widgets Tutorial - Using Layouts:

  • Wiggly Example: The Wiggly example shows how to animate a widget using QBasicTimer and timerEvent(). In addition, the example demonstrates how to use QFontMetrics to determine the size of text on screen.

  • Window Flags Example: The Window Flags example shows how to use the window flags available in Qt.

Qt XML

Additional Information

The following table lists related documents, such as information about Trademarks and other licenses used in parts of Qt.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+