SlideShare une entreprise Scribd logo
1  sur  109
Télécharger pour lire hors ligne
Qt Widgets In-Depth
    QWidget Under The Surface
About Me

• Marius Bugge Monsen
• Qt Developer
• Qt Widgets Team Lead
• Widgets and Window Systems
• Flags and Attributes
• The Future of Qt Widgets
by extranoise on flickr




Widgets and Window Systems
• Widgets and Window Systems
 • Window Systems
 • Windows and Widgets
 • Updates and Painting
 • Events and Loops
• Widgets and Window Systems
 • Window Systems
 • Windows and Widgets
 • Updates and Painting
 • Events and Loops
QWS       SunView
MiniGUI                             Metisse
     Rio    Microwindows
DM                          Fresco/Berlin
     8 1/2 GEM                        ManaGeR
HP Windows                  OOHG
               Xynth
                        MicroXwin       Intuition
Y             FBUI
     NeWS
                     NeXT DPS           Quartz
Wayland      Twin
                     OPIE           X
• X11
• Desktop Window Manager (MS Windows)
• Quartz Compositor (Mac OS X)
• QWS
• S60 Window Manager
Window Surface
Surface


Surface
Screen
Window System
Window System
Window System         Qt Application


                IPC     #include<QtGui>
                        int main(int argc, char *argv[])
                        {
                          QApplication a(argc,argv);
                          QWidget w;
                          w.show();
                          return a.exec();
                        }
• Widgets and Window Systems
 • Window Systems
 • Windows and Widgets
 • Updates and Painting
 • Events and Loops
Surface


          Surface


Surface
Surface


Surface             Surface
Widget


         Window


Widget
Window
• Widgets and Window Systems
 • Window Systems
 • Windows and Widgets
 • Updates and Painting
 • Events and Loops
Window System   Paint    Painting Code
                            #include<QtGui>
                            int main(int argc, char
                            *argv[])
                            {
                              QApplication a
                            (argc,argv);
                              QWidget w;
                              w.show();
                              return a.exec();
                            }




                Update
Window System   Backing Store   Painting Code
                                   #include<QtGui>
                                   int main(int argc, char
                                   *argv[])
                                   {
                                     QApplication a
                                   (argc,argv);
                                     QWidget w;
                                     w.show();
                                     return a.exec();
                                   }
Text


Text
Text


Text
• Client Side
 • Top-Level Window
   • Backing Store
   • Pixmap
• Server Side
 • Window
 • Pixmap
• Client Side        • Server Side
 • Window             • Window
   • Backing Store    • Pixmap
   • Pixmap
void QWidgetPrivate::drawWidget(QPaintDevice *pdev,
                                     const QRegion &rgn,
                                     const QPoint &offset,
                                     int flags,
                                     QPainter *sharedPainter,
                                     QWidgetBackingStore
*backingStore)
{
   ...
        //actually send the paint event
        QPaintEvent e(toBePainted);
        QCoreApplication::sendSpontaneousEvent(q, &e);
  ...
}
• Widgets and Window Systems
 • Window Systems
 • Windows and Widgets
 • Updates and Painting
 • Events and Loops
• Spontaneous Events
• Application Events
Input   Event   bool W::event(QEvent *e)
                      {

Any                     if (e->type() == t)
                            foobar();
                        return false;
                      }
Window System      Socket       Qt Event Dispatcher Event Handler
                                                        bool
                                                        W::event
                                                        (QEvent *e)
                                                        {
                                                          if (e-
                                                        >type() ==




                Qt Event Loop
int QCoreApplication::exec()
{
   ...
   QEventLoop eventLoop;
   self->d_func()->in_exec = true;
   self->d_func()->aboutToQuitEmitted = false;
   int returnCode = eventLoop.exec();
   ...
}
int QEventLoop::exec(ProcessEventsFlags flags)
{
   ...
   try {
       while (!d->exit)
         processEvents(flags | WaitForMoreEvents
                            | EventLoopExec);
   } catch (...) {
   ...
   --d->threadData->loopLevel;
   return d->returnCode;
}
bool QEventLoop::processEvents(ProcessEventsFlags flags)
{
  Q_D(QEventLoop);
  if (!d->threadData->eventDispatcher)
      return false;
  if (flags & DeferredDeletion)
      QCoreApplication::sendPostedEvents(0,
         QEvent::DeferredDelete);
  return d->threadData->eventDispatcher->processEvents(flags);
}
bool QEventDispatcherUNIX::processEvents
(QEventLoop::ProcessEventsFlags flags)
{
  ...
  // we are awake, broadcast it
  emit awake();
  QCoreApplicationPrivate::sendPostedEvents(0, 0,
      d->threadData);
  ...
  nevents = d->doSelect(flags, tm);
  ...
}
int QEventDispatcherUNIXPrivate::doSelect(
   QEventLoop::ProcessEventsFlags flags, timeval *timeout)
{
   ...
   // Process timers and socket notifiers - the common UNIX stuff
   ...
       nsel = q->select(highest + 1,
                  &sn_vec[0].select_fds,
                  &sn_vec[1].select_fds,
                  &sn_vec[2].select_fds,
                  timeout);
   ...
}
int QEventDispatcherUNIX::select(int nfds,
                                     fd_set *readfds,
                                     fd_set *writefds,
                                     fd_set *exceptfds,
                                     timeval *timeout)
{
   return qt_safe_select(nfds, readfds, writefds, exceptfds, timeout);
}
int qt_safe_select(int nfds,
                       fd_set *fdread,
                       fd_set *fdwrite,
                       fd_set *fdexcept,
                       const struct timeval *orig_timeout)
{
   ...
   // loop and recalculate the timeout as needed
   int ret;
   forever {
       ret = ::select(nfds, fdread, fdwrite, fdexcept, &timeout);
       if (ret != -1 || errno != EINTR)
           return ret;
       // recalculate the timeout
       ...
   }
}
• select()
 • poll status of file descriptors
 • blocks until timeout
X11      Socket       XLib Queue   Qt Event Dispatcher Event Handler
                                                           bool
                                                           W::event
                                                           (QEvent *e)
                                                           {
                                                             if (e-
                                                           >type() ==




      Qt Event Loop
postEvent()       Qt Event Queue   Event Loop   Event Handler
   #include<Q                                       bool
   tGui>                                            W::event
   int main(int                                     (QEvent *e)
   argc, char                                       {
   *argv[])                                           if (e-
   {                                                >type() ==
sendEvent()       Event Handler
   #include<Q         bool
   tGui>              W::event
   int main(int       (QEvent *e)
   argc, char         {
   *argv[])             if (e-
   {                  >type() ==
• Event Propagation
D

A

    C
        B
D


    C


A       B
D


    C


A       B
D


    C


A       B
D


    C


A       B
bool QApplication::notify(QObject *receiver, QEvent *e)
{
  ...
  bool res = false;
  if (!receiver->isWidgetType()) {
      res = d->notify_helper(receiver, e);
  } else switch (e->type()) {
  ...
}
• Widgets Propagate Events
...
case QEvent::StatusTip:
case QEvent::WhatsThisClicked:
    {
        QWidget *w = static_cast<QWidget *>(receiver);
        while (w) {
          res = d->notify_helper(w, e);
          if ((res && e->isAccepted()) || w->isWindow())
              break;
          w = w->parentWidget();
        }
    }
    break;
    ...
• Input Events Are Propagated
• Input Events are propagated if
 • event->isAccepted() == false
 • receiver->event(e) == false
bool QCoreApplicationPrivate::notify_helper(QObject *receiver,
                                            QEvent * event)
{
  // send to all application event filters
  if (sendThroughApplicationEventFilters(receiver, event))
      return true;
  // send to all receiver event filters
  if (sendThroughObjectEventFilters(receiver, event))
      return true;
  // deliver the event
  return receiver->event(event);
}
by Dan Queiroz on flickr




Flags and Attributes
• Flags and Attributes
 • Window Types
 • Window Hints
 • Widget States
 • Widget Attributes
• QWidget
 • QPaintDevice
 • QObject
• QWindowSurface
• Flags and Attributes
 • Window Types
 • Window Hints
 • Widget States
 • Widget Attributes
• Window Types
 • Widget
 • Window
•   Dialog

•   Sheet (Mac)

•   Drawer (Mac)

•   Popup

•   ToolTip

•   SplashScreen

•   Desktop

•   SubWindow (MDI)
• Flags and Attributes
 • Window Types
 • Window Hints
 • Widget States
 • Widget Attributes
•   CustomizeWindowHint           •   MacWindowToolBarButtonHint

•   WindowTitleHint               •   BypassGraphicsProxyWidget

•   WindowSystemMenuHint          •   WindowShadeButtonHint

•   WindowMinimizeButtonHint      •   WindowStaysOnTopHint

•   WindowMaximizeButtonHint      •   WindowStaysOnBottomHint

•   WindowMinMaxButtonHint        •   WindowOkButtonHint (WinCE)

•   WindowCloseButtonHint         •   WindowCancelButtonHint (WinCE)

•   WindowContextHelpButtonHint
• Flags and Attributes
 • Window Types
 • Window Hints
 • Widget States
 • Widget Attributes
• WindowState
 • WindowNoState
 • WindowMinimized
 • WindowMaximized
 • WindowFullScreen
 • WindowActive
• Flags and Attributes
 • Window Types
 • Window Hints
 • Widget States
 • Widget Attributes
• Qt::Widget Attribute
 • 124 Attributes
 • setAttribute()
 • testAttribute()
• Qt::WA_AcceptDrops
• QWidget::setAcceptDrops()
by robclimbing on flickr




Tips and Tricks
• Qt::WA_StaticContents
Exposed
Static Contents




    Exposed
• Qt::WA_NoSystemBackground
• Qt::WA_OpaquePaintEvent
• QWidget::autoFillBackground
• Qt::WA_OpaquePaintEvent
• QWidget::scroll()
 • QWidget::autoFillBackground
 • Qt::WA_OpaquePaintEvent
Concealed




Scrolled




Exposed
• Qt::WA_TranslucentBackground
#include <QtGui>

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   QPixmap skin("transparency.png");
   QLabel widget;
   widget.setPixmap(skin);
   widget.setWindowFlags(Qt::Window
                             |Qt::CustomizeWindowHint
                             |Qt::FramelessWindowHint);
   widget.setAttribute(Qt::WA_TranslucentBackground);
   widget.resize(skin.size());
   widget.show();
   return app.exec();
}
by jeff_c on flickr




The Future of Qt Widgets
• The story of two APIs ...
• QWidget
 • Widget Hierarchy
• QGraphicsItem
 • Scene Graph
• QWidget
 • Alien Widgets
 • Graphics Effects
 • Disable Clipping ?
 • Disable Move Events ?
 • Transformations ?
• Is it possible ?
• Is it possible in Qt 4.x ?
Thank you!

Questions?
Bonus Material
Qt Developer Days
 Window System
Window Surface   Scene Graph   IPC
QSharedMemory QGraphicsScene   QTcpSocket
• Server
• Window
• Server
 • Connections
 • Scene Graph
• Window
 • Surface
 • Geometry
 • Id
Server       Client

         #include<QtGui>
         int main(int argc, char *argv[])
         {
           QApplication a(argc,argv);
           QWidget w;
           w.show();
           return a.exec();
         }
Server   Protocol       Client




           ?
                    #include<QtGui>
                    int main(int argc, char *argv[])
                    {
                      QApplication a(argc,argv);
                      QWidget w;
                      w.show();
                      return a.exec();
                    }
• Message
 • Request
 • Reply
 • Event
Request    #include<QtGui>
           int main(int argc, char
           *argv[])
           {
             QApplication a
           (argc,argv);
             QWidget w;
             w.show();
             return a.exec();
           }




Response   #include<QtGui>
           int main(int argc, char
           *argv[])
           {
             QApplication a
           (argc,argv);
             QWidget w;
             w.show();
             return a.exec();
           }
Event   bool W::event(QEvent *e)
        {
          if (e->type() == t)
              foobar();
          return false;
        }
Lighthouse
• Research!
• Qt Graphicssystem Interface
• Makes Qt ports easy
• QGraphicsSystem
• QGraphicsSystemScreen
• QWindowSurface
• QGraphicsSystem
 • Window Surfaces
 • Server Communication
• QGraphicsSystemScreen
 • Screen Information
   • Depth
   • Resolution
   • Size
• QWindowSurface
 • Surface
 • Geometry
 • Id
Demo
Source Code


•   git://gitorious.org/+qt-developers/qt/lighthouse.git

Contenu connexe

Tendances

Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
Johan Thelin
 

Tendances (20)

Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systems
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics View
 
Qt Workshop
Qt WorkshopQt Workshop
Qt Workshop
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qt
 
Cross Platform Qt
Cross Platform QtCross Platform Qt
Cross Platform Qt
 
Qt Framework Events Signals Threads
Qt Framework Events Signals ThreadsQt Framework Events Signals Threads
Qt Framework Events Signals Threads
 
Petri Niemi Qt Advanced Part 1
Petri Niemi Qt Advanced Part 1Petri Niemi Qt Advanced Part 1
Petri Niemi Qt Advanced Part 1
 
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI Development
 
Building the QML Run-time
Building the QML Run-timeBuilding the QML Run-time
Building the QML Run-time
 
QVariant, QObject — Qt's not just for GUI development
QVariant, QObject — Qt's not just for GUI developmentQVariant, QObject — Qt's not just for GUI development
QVariant, QObject — Qt's not just for GUI development
 
The Future of Qt Widgets
The Future of Qt WidgetsThe Future of Qt Widgets
The Future of Qt Widgets
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
 
Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)
 
Qt for Beginners Part 3 - QML and Qt Quick
Qt for Beginners Part 3 - QML and Qt QuickQt for Beginners Part 3 - QML and Qt Quick
Qt for Beginners Part 3 - QML and Qt Quick
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and Qt
 
Meet the Widgets: Another Way to Implement UI
Meet the Widgets: Another Way to Implement UIMeet the Widgets: Another Way to Implement UI
Meet the Widgets: Another Way to Implement UI
 
Copy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with QtCopy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with Qt
 
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with QtConvert Your Legacy OpenGL Code to Modern OpenGL with Qt
Convert Your Legacy OpenGL Code to Modern OpenGL with Qt
 

En vedette

Efficient Graphics with Qt
Efficient Graphics with QtEfficient Graphics with Qt
Efficient Graphics with Qt
Ariya Hidayat
 
Tdc2011 goiânia-web apps-30102011
Tdc2011 goiânia-web apps-30102011Tdc2011 goiânia-web apps-30102011
Tdc2011 goiânia-web apps-30102011
Awdren Fontão
 

En vedette (20)

Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization SoftwareCase Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
 
Creating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtCreating Slick User Interfaces With Qt
Creating Slick User Interfaces With Qt
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Native
 
The Future of Qt Widgets
The Future of Qt WidgetsThe Future of Qt Widgets
The Future of Qt Widgets
 
Efficient Graphics with Qt
Efficient Graphics with QtEfficient Graphics with Qt
Efficient Graphics with Qt
 
Optimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based ApplicationsOptimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based Applications
 
Tdc2011 goiânia-web apps-30102011
Tdc2011 goiânia-web apps-30102011Tdc2011 goiânia-web apps-30102011
Tdc2011 goiânia-web apps-30102011
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbian
 
Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7
 
Qt Animation
Qt AnimationQt Animation
Qt Animation
 
Qt for beginners part 2 widgets
Qt for beginners part 2   widgetsQt for beginners part 2   widgets
Qt for beginners part 2 widgets
 
Qt for beginners part 5 ask the experts
Qt for beginners part 5   ask the expertsQt for beginners part 5   ask the experts
Qt for beginners part 5 ask the experts
 
Qt for beginners part 4 doing more
Qt for beginners part 4   doing moreQt for beginners part 4   doing more
Qt for beginners part 4 doing more
 
Shortcodes vs Widgets: Which one and how?
Shortcodes vs Widgets: Which one and how?Shortcodes vs Widgets: Which one and how?
Shortcodes vs Widgets: Which one and how?
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key concepts
 
Best Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part IIBest Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part II
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part III
 
[Webinar] 10 Keys to Ensuring Success for Your Next Qt Project
[Webinar] 10 Keys to Ensuring Success for Your Next Qt Project[Webinar] 10 Keys to Ensuring Success for Your Next Qt Project
[Webinar] 10 Keys to Ensuring Success for Your Next Qt Project
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IV
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part I
 

Similaire à Qt Widget In-Depth

[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9
Shih-Hsiang Lin
 
In Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docx
In Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docxIn Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docx
In Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docx
bradburgess22840
 

Similaire à Qt Widget In-Depth (20)

Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2
 
Qt & Webkit
Qt & WebkitQt & Webkit
Qt & Webkit
 
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
 
[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9
 
Best Practices in Qt Quick/QML - Part 1 of 4
Best Practices in Qt Quick/QML - Part 1 of 4Best Practices in Qt Quick/QML - Part 1 of 4
Best Practices in Qt Quick/QML - Part 1 of 4
 
In Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docx
In Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docxIn Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docx
In Class AssignmetzCST280W13a-1.pdfCST 280 In-Class Pract.docx
 
The Ring programming language version 1.2 book - Part 60 of 84
The Ring programming language version 1.2 book - Part 60 of 84The Ring programming language version 1.2 book - Part 60 of 84
The Ring programming language version 1.2 book - Part 60 of 84
 
Евгений Крутько, Многопоточные вычисления, современный подход.
Евгений Крутько, Многопоточные вычисления, современный подход.Евгений Крутько, Многопоточные вычисления, современный подход.
Евгений Крутько, Многопоточные вычисления, современный подход.
 
The Ring programming language version 1.9 book - Part 111 of 210
The Ring programming language version 1.9 book - Part 111 of 210The Ring programming language version 1.9 book - Part 111 of 210
The Ring programming language version 1.9 book - Part 111 of 210
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
 
Qt coin3d soqt
Qt coin3d soqtQt coin3d soqt
Qt coin3d soqt
 
Apache PIG - User Defined Functions
Apache PIG - User Defined FunctionsApache PIG - User Defined Functions
Apache PIG - User Defined Functions
 
Andes open cl for RISC-V
Andes open cl for RISC-VAndes open cl for RISC-V
Andes open cl for RISC-V
 
Multi qubit entanglement
Multi qubit entanglementMulti qubit entanglement
Multi qubit entanglement
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...
 
Bucks County Tech Meetup: node.js introduction
Bucks County Tech Meetup: node.js introductionBucks County Tech Meetup: node.js introduction
Bucks County Tech Meetup: node.js introduction
 
Unit testing en iOS @ MobileCon Galicia
Unit testing en iOS @ MobileCon GaliciaUnit testing en iOS @ MobileCon Galicia
Unit testing en iOS @ MobileCon Galicia
 
Qt Programming on TI Processors
Qt Programming on TI ProcessorsQt Programming on TI Processors
Qt Programming on TI Processors
 
The Ring programming language version 1.7 book - Part 101 of 196
The Ring programming language version 1.7 book - Part 101 of 196The Ring programming language version 1.7 book - Part 101 of 196
The Ring programming language version 1.7 book - Part 101 of 196
 
Integrazione QML / C++
Integrazione QML / C++Integrazione QML / C++
Integrazione QML / C++
 

Plus de account inactive

Plus de account inactive (20)

Meet Qt
Meet QtMeet Qt
Meet Qt
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integration
 
Qt Kwan-Do
Qt Kwan-DoQt Kwan-Do
Qt Kwan-Do
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applications
 
Qt Creator Bootcamp
Qt Creator BootcampQt Creator Bootcamp
Qt Creator Bootcamp
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 
Mobile Development with Qt for Symbian
Mobile Development with Qt for SymbianMobile Development with Qt for Symbian
Mobile Development with Qt for Symbian
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIs
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
 
The Mobility Project
The Mobility ProjectThe Mobility Project
The Mobility Project
 
The Next Generation Qt Item Views
The Next Generation Qt Item ViewsThe Next Generation Qt Item Views
The Next Generation Qt Item Views
 
Qt Licensing Explained
Qt Licensing ExplainedQt Licensing Explained
Qt Licensing Explained
 
Case Study: Porting Qt for Embedded Linux on Embedded Processors
Case Study: Porting Qt for Embedded Linux on Embedded ProcessorsCase Study: Porting Qt for Embedded Linux on Embedded Processors
Case Study: Porting Qt for Embedded Linux on Embedded Processors
 
OGRE: Qt & OGRE for Multimedia Creation
OGRE: Qt & OGRE for Multimedia CreationOGRE: Qt & OGRE for Multimedia Creation
OGRE: Qt & OGRE for Multimedia Creation
 
HGZ Kaffeemaschinen & Qt Speak Coffee
HGZ Kaffeemaschinen & Qt Speak CoffeeHGZ Kaffeemaschinen & Qt Speak Coffee
HGZ Kaffeemaschinen & Qt Speak Coffee
 
Discover Qt Learning and Certification
Discover Qt Learning and CertificationDiscover Qt Learning and Certification
Discover Qt Learning and Certification
 
Accelerating performance on Qt and WebKit for the MIPS architecture
Accelerating performance on Qt and WebKit for the MIPS architectureAccelerating performance on Qt and WebKit for the MIPS architecture
Accelerating performance on Qt and WebKit for the MIPS architecture
 
Qt Experiences on NXP's Connetcted TV Platforms
Qt Experiences on NXP's Connetcted TV PlatformsQt Experiences on NXP's Connetcted TV Platforms
Qt Experiences on NXP's Connetcted TV Platforms
 

Dernier

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Qt Widget In-Depth