Which GUI toolkit for editor?

Started by
25 comments, last by Chetanhl 13 years, 5 months ago
I've had over 2 years experience with Qt. I have had much ease of development than I have with any other C++ toolkit. I have used wxWidgets, Gtkmm, Gtk+, etc. They have all their own good qualities and their bad.

I have done DirectX 9, 10, 11 with Qt and while it's not hard to integrate with Qt. It is quite easy. I am awful at DX so my implementation's have been bad but I have gotten them to work.

Qt has excellent documentation that is well documented and down to the point. The gui form designer is by far untouchable by any other gui form editor. Linguist for localisation, Assistant application for documentation.

You have classes for creating COM objects ActiveQt. You have QScopedPointer, QSharedPointer. Which is really easy to use especially have custom delete functors. You rarely have to worry about memleaks as Qt uses parent/children idiom. So when the parent is deleted all of it's children are automatically deleted. Classes are consistent through the api.

Some might complain about MOC (Meta object compiler) but when you use it, you'd learn to appreciate it. You don't have to worry about ugly macros everywhere like MFC, wxWidgets. They might also complain about bloatness. But, if you really look at it. At least you don't have to worry about depending on X many libraries and have so many inconsistence making your code look uglier, or ever have to worry about end users compiling X many libraries just to get your application to work.

Look at all the companies that use Qt and the application's they have made out of Qt. http://qt.nokia.com/qt-in-use .

It will work with your existing code, so you don't have to learn C# and use C++/CLI to make it work. Which will be a lot more work with little benefits. While I have nothing against C#. I just don't think you'd gain really anything, because of the amount of work to get it to work in C#.

If you have any questions about Qt. I'll help you the best I can or you can ask on irc.freenode.net #Qt.
Advertisement
Quote:Original post by wqking
@Bearhugger: Qt now is completely free


Though that "now" has a range of nearly two years now ;)



plug plug plug qt picogen

Hi,

Althought I'd be the last to advocate the usage of MS-specific technologies (aside for DX which I love), actually using .NET is not really bad.

You don't have to wrap everything that is native C++. You just have to design your UI properly. There are many ways to do that. You generally only need the interface points between the UI and your native code to be managed.

Its really not a problem and using native C++ from managed code is not a problem. It only starts to become a problem when writing in C# but the C# code should be very minimal and without much logic.

Although writing good applications in Winforms or WPF is HARD, and by good I mean production level and with good performance, writing an initial editor is by far the fastest you'd write. Its almost as easy as Java :)

Qt is a great option but I probably wouldn't have chosen it myself even though I developed with it (on Linux but still). The .NET framework is readily available, has great integration with visual studio and is very simple to use.

Also, integrating DX rendering with Winforms is possible but has some limitations. Other than that, its a breeze.
-----------------------------He moves in space with minimum waste and maximum joyGalactic Conflict demo reel -http://www.youtube.com/watch?v=hh8z5jdpfXY
.NET isn't bad. It's just bad when trying to interop. Qt would be great for an editor even if you do use DirectX.

@phresnel: Is that open source? Where can I get it, i'd love to look at it.
OT:
Quote:Original post by SeaBourne
@phresnel: Is that open source? Where can I get it, i'd love to look at it.


Yep, open source. It is in the make. You can have a first look at this. Note that release 0.4 features a revised, actually user friendly gui.

You can follow on freshmeat, or deviantArt (more options: here).

I also post IOTDs here :)
Quote:Original post by wqking
If you want a free solution, Qt.
I have no development experience with Qt yet,
...
So I highly recommend Qt. .


Qt may well be the best thing since sliced bread but how can you highly recommend it?
Quote:Original post by theOcelot
Quote:Original post by BearhuggerIn addition, you have to use a pre-compiler so your code is not fully stand-alone.

Cite please. Google tells me nothing about this:
qt build precompiler.

He's referring to the Qt moc (Meta-Object Compiler). It's a pre-processor that generates the code supporting the QObject type system, as well as Qt Signals and Slots.

If you use Qt Designer (a WYSWYG interface editor), it outputs .ui files. You'll also need to compile them with the uic (User Interface Compiler).

If you use the Qt resource system to archive your program's data files within the executable itself, you'll need to use the rcc (Resource Compiler) to process your files into the executable.
Quote:Original post by Slavik81
Quote:Original post by theOcelot
Quote:Original post by BearhuggerIn addition, you have to use a pre-compiler so your code is not fully stand-alone.

Cite please. Google tells me nothing about this:
qt build precompiler.

He's referring to the Qt moc (Meta-Object Compiler). It's a pre-processor that generates the code supporting the QObject type system, as well as Qt Signals and Slots.

If you use Qt Designer (a WYSWYG interface editor), it outputs .ui files. You'll also need to compile them with the uic (User Interface Compiler).

If you use the Qt resource system to archive your program's data files within the executable itself, you'll need to use the rcc (Resource Compiler) to process your files into the executable.



Note that all this is handled automatically by QtCreator.
Quote:Original post by phresnel
Quote:Original post by Slavik81
Quote:Original post by theOcelot
Quote:Original post by BearhuggerIn addition, you have to use a pre-compiler so your code is not fully stand-alone.

Cite please. Google tells me nothing about this:
qt build precompiler.

He's referring to the Qt moc (Meta-Object Compiler). It's a pre-processor that generates the code supporting the QObject type system, as well as Qt Signals and Slots.

If you use Qt Designer (a WYSWYG interface editor), it outputs .ui files. You'll also need to compile them with the uic (User Interface Compiler).

If you use the Qt resource system to archive your program's data files within the executable itself, you'll need to use the rcc (Resource Compiler) to process your files into the executable.



Note that all this is handled automatically by QtCreator.


Actually its handled by qmake, Qts build system. You can also use qmake with VisualStudio or make/nmake files.

cmake has a pretty good qt-support as well and handles all that precompiler stuff.
Quote:Original post by 3Xist3nZ
Quote:Original post by phresnel
Quote:Original post by Slavik81
Quote:Original post by theOcelot
Quote:Original post by BearhuggerIn addition, you have to use a pre-compiler so your code is not fully stand-alone.

Cite please. Google tells me nothing about this:
qt build precompiler.

He's referring to the Qt moc (Meta-Object Compiler). It's a pre-processor that generates the code supporting the QObject type system, as well as Qt Signals and Slots.

If you use Qt Designer (a WYSWYG interface editor), it outputs .ui files. You'll also need to compile them with the uic (User Interface Compiler).

If you use the Qt resource system to archive your program's data files within the executable itself, you'll need to use the rcc (Resource Compiler) to process your files into the executable.



Note that all this is handled automatically by QtCreator.


Actually its handled by qmake, Qts build system. You can also use qmake with VisualStudio or make/nmake files.

cmake has a pretty good qt-support as well and handles all that precompiler stuff.


No, with QtCreator, you don't have to invoke qmake by hand.
Yes, and leading further, actually rcc, moc and uic handle the stuff.

Sidenote: I am not a begginer in Qt, and have also hacked on qmake to let it spit out Automake compatible filelists (though I haven't requested a merge with mainline yet, dunno if they want it)

This topic is closed to new replies.

Advertisement