mailto Contact Us
ICS Network - Hall of Fame

The ICSNetwork Challenge Hall of Fame


Q18.   What is generally easier to implement using Qt: SDI or MDI?

A18.  SDI

And the winner is:
Ahapkin Ruslan
Moscow, Russia


 

Q17.   In addition to C++, as of Qt 4.7, what new programming language can be used to develop Qt applications?

A17.  QML



 

Q16.   When transitioning between states in QML, what are the values of target properties not referenced in PropertyChanges elements?

A16.  A. Target properties not referenced in the PropertyChanges elements are returned to their
default values specified in the target element definition.

In the following example, a transition from state1 to state2 will reset
color to "red":

Rectangle {
       id: myRect;
       width: 200; height: 200; color: "red"; opacity: 1.0;
}
State {
       id "state1"
       PropertyChanges ( target: myRect; color: "green"; opacity: .5 }
}

State {
       id: "state2"
       PropertyChanges { target: myRect; opacity: 0 }
}

And the winner is:
Yury Chebiryak
Schlieren, Switzerland

 

Q15.   Images can be rotated around the Z axis in Qt Quick by changing their rotation property. How do you rotate an Image around the X or Y axes?

A15.  Rotation property holds the rotation of the item in degrees clockwise. This specifies how many degrees to rotate the item around its transformOrigin around the z axis.

The Rotation object gives more control over rotation than using Item's rotation property. Specifically, it allows (z axis) rotation to be relative to an arbitrary point.

Rotation also provides a way to specify 3D-like rotations for Items. For these types of rotations you must specify the axis to rotate around in addition to the origin point. In the following example the image is rotated around y axis

Image {
              source: "pics/qt.png"
             transform: Rotation { origin.x: 30; origin.y: 30; axis { x: 0;
                                                  y: 1; z: 0 } angle: 18 }
             smooth: true
           }

And the winner is:
Albano Gheller
Maggiate Inferiore, Italy

 

Q14.  Formerly known as the Maemo 6 UI framework, the Harmattan UI Framework, and DirectUI, what is the new name for the Qt-based framework for creating applications for touch-enabled devices?

A14.  MeeGo Touch Framework

And the winner is:
Roland Müller
Pirkkala, Finland

 

Q13.  What three new methods were added to the QVariant class in Qt 4.6.0?

A13.
  • QVariant::QVariant ( float val )
  • float QVariant::toFloat ( bool * ok = 0 ) const
  • qreal QVariant::toReal ( bool * ok = 0 ) const

And the winner is:
Ramya Murthy
Forest Hills, NY

 

Q12.  The QSharedMemory class can be used to implement inter-process communication (IPC). What other Qt module can be used for more sophisticated IPC, although it is currently limited to Unix platforms?

A12.  QtDBus

And the winner is:
Jacobus Koster
Milpitas, CA

 

Q11.  What was the original name for Qt Creator when it was first announced?

A11.  Greenhouse

And the winner is:
Bradley A. Smith
El Segundo, CA

 

Q10.  The Eclipse releases have been given code names including Callisto, Europa, Ganymede, and Galileo. Where do these names come from?

A10.  They are named after moons of the planet Jupiter. The first three Eclipse releases were named after the moons Callisto, Europa, and Ganymede. The fourth release was slated to be named after the moon Io but since "Io" looks a lot like "10" or "I/O", the Eclipse planning council instead decided to name it after the astronomer who discovered these four moons, Galileo Galilei.

And the winner is:
Joseph Caputo
Marlton, NJ

 

Q9.  What is the name of WebKit's new JavaScript engine?

A9.  SquirrelFish

And the winner is:
Pablo Rogina
Argentina

 

Q8.  What new localization tool is included in the Qt 4.5 release?

A8.  lconvert can convert files between .ts, .po, and .xlf formats.

And the winner is:
Ken Do
San Jose, CA

 

Q7.  What is the Acid2 Browser Test

A7.  Acid2 tests support for HTML, CSS, and other web standards. It is not a comprehensive test, but provide a good basis for evaluating a browser's conformance to standards.

And the winner is:
Didier Collard
Baarn, The Netherlands

 

Q6. If you look at the Qt source, the class QWidget has only one private non-static data member. This is surprising for a class that holds so much information. There is, in fact, a technical reason for this. What is it?

A6.  All data members of QWidget are in a separate class, accessible only through a private member of QWidget: the d-pointer. This technique, known under various names (d-pointer, Pimpl, handle/body or Cheshire Cat) is used because adding data members directly to the QWidget class between versions of the Qt library would break binary compatibility. For more information, see http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++

And the winner is:
Ron Natalie
Herndon, VA

 

Q5. If you were to show data in a list as a bar graph, what class would you sub-class to get started?

A5.  QStyledItemDelegate

And the winner is:
Pierre-Étienne Messier
Broussard, QC Canada

 

Q4a. How many design patterns can you think of that are used in QObject? Name them.

A4a.  Composite, Reflection

Q4b. Which design patterns help you implement lazy copy on write?

A4b.  Flyweight, Proxy, Bridge

Q4c. How can the strategy pattern get rid of switch statements?

A4c.  Use virtual function calls instead.

Q4d. Which design pattern helps you implement undo/rollback/journaling?

A4d.  Command pattern

Q4e. What is common to behavioral design patterns?

A4e.  They describe how to organize code.

Q4f. What is common to structural design patterns?

A4f.  They describe how to organize objects.

And the winner is:
Renaud Guezennec
Arles, France

 

Q3.  What two new components of Qt 4.4 originally came from the KDE project?

A2.  WebKit and Phonon

And the winner is:
Pierre Poulin
Montreal, QC Canada

 

Q2.  QGraphicsView came from the earlier QCanvas framework. What project did QCanvas come from?

A2.  QwSpriteField, written by Warwick Allison.

Q2 Bonus.  How fast is Graphics View collision detection?

A2 Bonus.  O(n log(n))

And the winner is:
Austin Bowman
Gateshead, UK

 

Q1.  When defining a Qt class with slots, the keyword "slots" is used. But in the Qt header file <qobjectdefs.h>, "slots" is defined to be an empty string. So why do we need to use the "slots" keyword?

A1.  The "slots" keyword is used by the moc meta-object compiler to identify slots so it can generate the meta-object information for them.

And the winner is:
Jonathan Brady
Birkenhead, Wirral, UK

 

ICSNetwork

The place to learn advanced techniques for developing with Qt.

The latest webcast is:
"What's New in Qt 4.8 and Beyond"


This Week in Qt Podcast Series

Learning Center:


 

Contact Us | Quote Request | Privacy Policy | Terms of Service | Site Map | Trademarks | Other ICSs
© 1999-2012 Integrated Computer Solutions, Inc.