Introduction of QT and comparison with MFC and gdk+

Source: Internet
Author: User
Tags gtk

Qt

C + + Graphical user interface application Development framework.

The origin and development of QT  

1. qt Origin
Haavard Nord and Eirik Chambe-eng started the development of "Qt" in 1991, the company was founded on March 4, 1994, early named Quasar Technologies, then renamed Troll Tech, and then changed to Trolltech, Chinese name is "Science and technology". The company was acquired by Nokia on June 17, 2008 to enhance its capabilities in cross-platform software development, renaming QT software.
The toolkit is named QT because the letter Q is particularly beautiful in Haavard's Emacs font, while "T" stands for "toolkit", inspired by Xt,x Toolkit.
May 11, 2009, Nokia Qt Software announced that QT Source control system is open to the public, and QT developers can help guide and shape the future of QT by contributing code, translations, examples, and other content for QT and QT-related projects. To facilitate the management of these content, Qt software enabled a Web Source control system based on Git and gitorious open source projects.
QT Software released its product Plan (roadmap) on its website while the open QT code base was launched. It outlines new features in research and development projects, and presents the current perspective on the future of QT in order to encourage communities to provide feedback and contribute code to guide and shape the future of Qt together.
2. QT characteristics
In essence, QT is a cross-platform C + + application Development Framework, sometimes referred to as the C + + parts toolbox. QT is used in the development of the KDE desktop environment, Opera, Google Earth, Skype, Adobe Photoshop album and VirtualBox. It is the product of Nokia's QT development Frameworks department. With Qt, you can deploy these applications across different desktop and embedded operating systems without having to rewrite the source code by developing applications and user interfaces at once. Basically, QT is the same type of thing as the MOTIF,OPENWIN,GTK on the X Window and the Mfc,owl,vcl,atl on the Windows platform, but QT has the following advantages:
A) excellent cross-platform features:
QT supports the following operating systems: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix , FreeBSD, Bsd/os, SCO, AIX, OS390,QNX, etc.
B) Object-oriented
QT's good encapsulation mechanism makes QT modular degree very high, reusability is good, for user development is very convenient. Qt provides a security type called Signals/slots to replace Callback, which makes collaboration between components very simple.
c) Rich API
Qt includes up to 250 C + + classes, and is also used for template-based collections, serialization, file, I/O device, directory management, Date/time class. It even includes the ability to handle regular expressions.
d) Support 2d/3d Graphics rendering, support OpenGL
e) A large number of development documents
f) XML support
Nokia recently released a new version of QT 4.6--for cross-platform applications and user interface frameworks. Qt 4.6 provides support for the new platform, with powerful new graphics processing capabilities and support for multi-touch and gesture input, making the development of advanced applications and devices easier and happier.
"No matter what product design or development platform, the release of Qt 4.6 is an exciting thing for developers," said Sebastian Nystrom, vice president of application services and frameworks at Nokia. ”
"Developers can easily develop applications that have visual aesthetics and network connectivity for desktop platforms or devices, including hundreds of millions of of Symbian-and Maemo-based systems." ”
Nystr?m added: "Developers will love to use QT's intuitive programming interface to quickly develop powerful, visually appealing applications." ”
More platforms
The Qt 4.6 first included support for Symbian platforms and added Windows 7, Apple Mac OS 10.6 (Snow Leopard) and upcoming Maemo 6 on the platforms it supports. It also provides network community support for RTOs and VxWorks for real-time operating systems. Support for Maemo 5 is now in the research and development phase, and the second edition of its technical preview is released today.
Qt support for Symbian and Maemo for the first time for developers to create the opportunity to use the same code base for the development of these two platforms. The ability to share code across platforms means that developers are developing applications that are faster to market and will have a wider range of device user groups.
The new QT API Technology Preview version of the QT Mobility Project is also available today. These cross-platform APIs provide developers with a variety of features, such as positioning capabilities for navigation-class devices, as well as information delivery and reception, contact and network connection management, and more.
Look more dazzling
The Qt 4.6 was created on the basis of 4.5 graphics enhancements, further reinforcing these graphics features, adding a new animated framework (Animation framework)-including intuitive state machine functionality-and new advanced graphics features such as opacity, shadows, flashes, and filters.
Using your finger
One of the exciting new features of Qt4.6 is the ability to create multi-touch applications. This new, multi-touch and gesture-based input method, such as touch and power scrolling, makes the Qt4.6 framework more powerful, allowing users to interact with applications and devices in a dynamic manner through touch.
Stronger performance
The traditional software development perspective argues that access to advanced user interface functionality is often at the expense of significant performance damage. Qt 4.6 presents a challenge to this view, putting a lot of work into it, both to get good performance and to enable developers to develop products that meet the "amazing" effect required by users.
Performance improvements include: a highly optimized, rewritten Qt graphicsview rendering algorithm, a new OpenGL drawing engine, WebKit, support for 2D vector graphics using OpenVG, and support for new DIRECTFB.
New tools
At the same time as Qt 4.6 was released, the Qt Creator, a cross-platform IDE for QT Development, also released an updated version. QT Creator 1.3 and QT 4.6 together comprise the QT SDK, which includes all the features needed to develop cross-platform applications. (from Programbbs)
3. What can I do with QT?
The official website of QT talks about 15 years of achievements that have helped organizations around the world and across industries develop advanced, highly innovative applications and equipment.
With QT, many developers and companies have been able to:
Reduced development time by nearly 50%.
Accelerates development speed by 50% because code is maintainable
Reduced code volume by 50%
What do the users of Qt say?
94% reports that QT meets or exceeds its development expectations
92% will recommend the use of QT to others
76% report productivity gains due to QT use
QT applications: There are many well-known examples that are developed using QT. For example: Arora (a cross-platform open source web browser), Eva (Linux qq chat software), Freemat (a free and open source numerical computing environment and programming language), Gadu-gadu (instant messaging software), Google Earth (google Earth) (three-dimensional virtual map software), ImageVis3D, KDE (the famous desktop environment), Elibs (a shared library used by many KDE programs, such as Amarok, k3b, KDevelop, KOffice, etc.), Last.fm player (desktop client of the famous Internet music community website), Motorola A760 (UI with qt/embedded construction), MythTV9 (open source digital video recording software), Opera (famous web browser), Qterm ( Cross-platform BBS software), Qt Extended, Quantum GIS, Skype (a large number of peer-based VoIP chat software), SMPlayer (cross-platform multimedia player), TeamSpeak (cross-platform sound communication software), tlen.pl: Poles invented Instant messaging client TOra, VirtualBox (virtual machine software), Xconfig (Kernel Configuration tool for Linux), Chmcreator (Open source CHM development tool) ... Qt is a cross-platform graphics Library, MFC is a C + + format for Windows API encapsulation, and GTK + is a common library for Linux desktop systems. a simple comparison between Qt and MFC:QT application is mainly under Linux, but it is cross-platform, but also support other operating systems, is now a more well-known interface library, the famous KDE is the use of QT developed. MFC is provided to the VC, but it is mainly code base, not like VCL and compiler hooks a lot, but MFC is mainly for the Windows API encapsulation, so can only be used for the Windows platform according to what you said, a simple comparison:
1. Development speed
As a whole, MFC may be faster, because the Windows platform development tools are very smart, because the Windows-based development crowd is very broad, from rookie to professional, but QT because of Linux-based, the available development tools are not many, most of the more professional, mostly third-party products, and the integration of small, third-party library is not MFC, from this point MFC notch above, but QT since the acquisition by Nokia, the official release of the cross-platform integration development environment Qtcreator, so after the trend is not good to say, personal overall feeling QT Creator and Vs.net Gap is relatively large, but also need to improve
But from the library itself, the function of QT integration is larger than MFC, and the use of packaging technology signals and slots are also more praised, such as Qt script for QT to provide embedded script, QT interface library support CSS, so QT made out of the interface is better than MFC, and relatively easy, MFC needs a third-party library. Because MFC is a shallow package (the latest SP1 joins BCG's advanced interface Library, there may be some improvements), the Windows SDK reduces the development efficiency caused by using the Windows SDK and increases the difficulty of development. So the QT library is superior to MFC, two libraries have withstood the test of time, the stability is very high, the bug almost no
2. Operating efficiency
MFC because of its shallow packaging features, so the operating efficiency is relatively high, plus VC on the targeted optimization of Windows, the overall performance is relatively high, but if you join the third party library can not guarantee the QT because the library is large, the package layer is deep, so the operating efficiency is lower than MFC, But in the current machine configuration, C # Everyone does not mind, these will arouse people's mind?
3. Scope of application Now the popularity of Windows who can compare, so MFC more customer volume, QT is mainly under the Linux developers in use, but MFC also just benefited from windows (feel again a bundle strategy), MFC does not support embedded development (mainly refers to the mobile platform), But QT has the corresponding module
4. Learning Difficulty
QT Packaging philosophy is relatively clear, and system isolation is better, so the personal feeling threshold is not high
MFC is more difficult to master, because in-depth development after the SDK is still to understand, or the program feels more child-like, hehe a simple comparison between QT and GTK +:While most of the development under Linux is based on the character interface, it is possible to develop an elegant graphical interface in a Linux environment. After years of development, there are many development packages for developing graphical interface programs under Linux, which are more commonly used in QT and GTK +.
QT is a cross-platform graphical user interface development library that not only supports the Linux operating system, but also supports all types of UNIX and the Windows operating system. QT's good encapsulation mechanism makes it highly modular and reusable, and QT provides a rich API for developers to use. The graphical user interface program developed with QT has good stability and robustness. Desktop environment KDE (K? Desktop? Environment, or K desktop environment, is developed using QT as its underlying library.
Since QT uses C + + object-oriented programming language as its development language, many programmers who develop under Linux prefer or are more accustomed to using C language. GTK + uses the C language as the development language. It is based on LGPL authorization, so GTK + is open source and completely free. GTK + is easy to use and performs efficiently. For these reasons, GTK + has a large number of advocates. Linux desktop Environment Gnome is based on GTK +.

Introduction of QT and comparison with MFC and gdk+

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.