Qt Interview Questions
In this post we will look at Qt Interview questions. Examples are provided with explanation.
Q: What is Qt?
A: Qt is a cross-platform application framework and widget toolkit for creating classic and embedded graphical user interfaces, and applications that run on various software and hardware platforms with little or no change in the underlying codebase, while still being a native application with native capabilities and speed
Q: Which IDE you use for developement of Qt code?
Q: What are advantages of using Qt Containers over STL containers?
A: The advantages are as follows -
- Qt containers are more lightweight than STL containers. They consume less memory
- Qt containers documentation is much better than STL container. So use is much easier.
- The learning curve for Qt container is comparatively less than STL container.
Q: How to print to console when using Qt?
#include <QTextStream> QTextStream out(stdout); foreach(QString a, strings) out << a << endl;
Q: How to set color of text and background of a QLabel?
A: This can be done using QPalette and setting setAutoFillBackground(true);
QPalette test_pallete; test_pallete.setColor(QPalette::Window, Qt::white); test_pallete.setColor(QPalette::WindowText, Qt::blue); test_label->setAutoFillBackground(true); test_label->setPalette(test_pallete); test_label->setText("Hello World");
Q: What is a QVariant and when should it be used?
A: QVariant is used to store references to values where you don't necessarily know what is inside. It's a way to create APIs that can accept "anything" as a reference to an unknown type. IE, instead of having to have an API that accepts a long, and another for an int, and another for a float, and another for a string you can have a single API that accepts a QVariant instead.
Q: How to use the Qt's PIMPL idiom?
A: The PIMPL is a private class that contains all of the implementation-specific data of the parent class. Qt provides a PIMPL framework and a set of conventions that need to be followed when using that framework. Qt's PIMPLs can be used in all classes, even those not derived from QObject. The PIMPL needs to be allocated on the heap. In idiomatic C++, we must not manage such storage manually, but use a smart pointer. Either QScopedPointer or std::unique_ptr work for this purpose.
Q: How to convert int to QString?
A: This can be achieved using QString::number()
int a = 4;
QString str = QString::number(a);