10

I am starting to work on a new GUI project in .Net and someone suggested Qt to me. I started reading about it and I don't understand its advantages over Visual Studio's designer.

I see why C++ VS6 will use it, but not why .net developers.

If the main advantage is portability then what is its advantage on JAVA?

Thanks!

ismail
  • 46,010
  • 9
  • 86
  • 95
AYBABTU
  • 986
  • 3
  • 17
  • 39
  • 5
    Qt is specifically a C++ library. I wouldn't expect .NET or Java developers to be interested. – Greg Hewgill Dec 13 '10 at 00:57
  • 2
    Well there's also a python port of Qt. But if you're using .net, you don't need cross platform support anyway so use whatever microsoft gives you to use. – Falmarri Dec 13 '10 at 01:26
  • Notice that you can work with QT and .Net http://en.wikipedia.org/wiki/Qt_%28framework%29 – AYBABTU Dec 13 '10 at 11:37

6 Answers6

14
  • It's cross-platform and it uses the system's resources to draw windows, controls, etc so your application will get a native look (e.g on a Mac your app window will be lacking the menu bar and the menu bar will appear on the system's menu bar as it is the standard behavior on the Mac platform).

  • Writing in C++ gives you great control, the possibility to work with fantastic libraries like the STL, Boost, etc; and your code is compiled to native binaries that will run at full speed without the need for a virtual machine.

  • Qt is open source and is developed by the Qt Group (formerly Trolltech) at Nokia so you have a very large enterprise maintaining it with the support from the community and ensuring it's evolution.

  • It has the best GUI designer I've ever seen (I have worked with .NET before using both Windows Forms and WPF)
Raphael
  • 7,972
  • 14
  • 62
  • 83
  • Another question - it translate c++ commands for the correct platform? I can develop once on a PC and it will use "fork" automatically when I compile it on Linux? – AYBABTU Dec 13 '10 at 11:42
  • 1
    It abstracts much of the underlying platform so if you do not write OS specific code (which is unnecessary in most applications) you can compile the same code in all major platforms. So far most applications I have developed with Qt were compiled on Linux, Windows and Mac without changin not even one line of code. – Raphael Dec 13 '10 at 13:39
9

Have a look at this post: Do you use Qt and why do you use it?

Personally i like Qt because its cross-platform, very popular, and you can have a prototype ready very fast!

Community
  • 1
  • 1
athspk
  • 6,722
  • 7
  • 37
  • 51
  • 10
    Note the licensing on Qt has changed since that question was answered. It is now possible to use Qt for free in a commercial application thanks to the LGPL version. – karunski Dec 13 '10 at 01:50
  • 6
    Very good to point this out Karunski! LGPL played a big role in QT's wide acceptance. – athspk Dec 13 '10 at 01:56
5
  • It is not just cross platform across desktop platforms namely - Windows, Mac OS and Linux but also the same code will work on the devices based on Embedded Linux, Windows CE/Mobile, Symbian and the newly coming Meego. For embedded linux it has its own light weight windowing system based on framebuffer eliminating the need for X11.
  • It now also has a very capable IDE in Qt Creator which again works on all platforms and hence gives you same development environment where ever you go.
  • The latest 4.7 is coming with a new way of developing apps for devices using QML+Javascript for your fluid multi touch gesture enabled interface talking directly to the business logic done in C++ Qt classes.
  • The same is true for Qt Webkit based on Webkit toolkit where you can connect your javascript code to your core C++ classes done in Qt.
Pankaj
  • 599
  • 3
  • 10
3

Qt's greatest advantage IMO is its ability to go cross-platform.

Additionally, because it is compiled it should (in theory at least) run faster than both .NET and Java applications.

jocull
  • 20,008
  • 22
  • 105
  • 149
3

It's cross platform capabilities and popularity are attractive.

I think two of the biggest advantages are:

  • the API design is excellent
  • the tools that work so seemlessly together with it: QtCreator, PySide, Jambi
sje397
  • 41,293
  • 8
  • 87
  • 103
1

In less words,

  • Qt is better for GUI design, because is faster than other languages
  • Is managed directly by the CPU
  • Use smart Memory management
  • It's GUI Designer is very useful and easy to handle
  • I have made the same application on Java and QT, and runs like 5 o more times faster on QT

For a more detailed description, you can take a look on this article:

http://turing.iimas.unam.mx/~elena/PDI-Lic/qt-vs-java-whitepaper.pdf

Is a brief comparison on Java and Qt, is very interesting.

GTRONICK
  • 366
  • 4
  • 14
  • Whilst this may theoretically answer the question, [it would be preferable](//meta.stackoverflow.com/q/8259) to include the essential parts of the answer here, and provide the link for reference. – Bhargav Rao Apr 04 '16 at 14:29