How to better my GUI skill?

So, I have been trying to expand my GUI skill. I have been using Qt, but I like the idea of using Direct2D and Win32 better. Qt is just too... simplistic, and too far off the STL for me.

The problem is, i can't find a good tutorial out there for it.

What do I mean by GUI? I mean like, a modern look. Advanced, yet beautiful to look at. Also, I am looking to eventually learn game development with DirectX (if you've seen my recent posts, I looked into OpenGL. Yeah.... No. I absolutely hate the idea of having to download and link to several external libraries (GLEW, GLFW, GLM, GLUT) just to get a modern version of it).
Anywho, basic Win32 controls (buttons, text edit boxes, static text) look... sort of old. Visual Studio, Steam, Qt Creator, and Unity (just to name a few) has such pretty UIs that I love. The buttons are modern and sharp looking, the text doesn't look like Times New Roman, the menus are cool... you know what I'm saying. How to have a button that looks like it was made in CSS, with gradients?

And I still... STILL cannot get an image to work in Win32, so I guess that will be a problem.
Last edited on
AceDawg45 wrote:
Qt is just too... simplistic, and too far off the STL for me.
The Windows API is a nightmare of ugly-looking C. Can't get any further from the C++ standard library than that.

Why should a GUI be anything more than simplistic? Do you know that 50% of people are below average intelligence?
Do you know that 50% of people are below average intelligence?
That would also mean 50% of people are above average :P
The Windows API is a nightmare of ugly-looking C. Can't get any further from the C++ standard library than that.

Yeah, that is what I worry about. It just seems like it is the biggest API used out there.

Perhaps I worded the question wrong. I mean, how to better my skills for the real world. So, what would help me get a job the most? Like, at a big company. (far fetched) What would I need to learn to work for google or something? I assume Qt wouldn't cut the cheese for that...
Why do you assume that Qt wouldn't be used in a real world scenario? What is the point of Qt then?

WinAPI is not portable - as the name suggests, it only works on Windows.
I assume Qt wouldn't cut the cheese for that...


Why that? Qt has heaps of stuff in it, I don't see why you think it is simplistic? Maybe you haven't tried to use all it's functionality?
If you want to get a job programming GUIs then neither Qt nor Win32 are the right answer. Everyone is doing Windows Forms (.NET) now. The only reason to use anything else is if you need some platform independence. Win32 is considered pretty much obsolete for GUIs (unless you're making a toolkit, obviously).
Why that? Qt has heaps of stuff in it, I don't see why you think it is simplistic

Well, when you think of some huge company, you assume they are using... other stuff. Qt just seems sort of unpopular to me - I don't see many people using it.
And I do use Qt for stuff. It is quick and simple. But... I feel like it would be harder to find a job using it


Anyway, thanks for the tip, helios. I've never tried a Windows Form.
So, what would help me get a job the most?

Take a look at job openings in your area and see what companies are looking for. The majority will most likely be .NET or PHP.
I did some Windows Form and .NET stuff... and it is really... really easy. Very easy, to say the least. I made a full on program in less then 2 hours - which is about a 20th of the time it took me to make a full program with Qt - which is a little unfair to say, because I jumped into Qt with only about 3 months of programming experience - now I am at a year and a half and actually understand what I'm doing. But, still feels good.

Just, a sort of irrelevant question - but is it better to stick with cross platform APIs and libraries? I am also trying to learn game programming, and OpenGL couldn't work for me. I don't like having to download GLEW and GLUT and GLM and GL this GL that. That, and OpenGL is only 3D, and doesn't have sound and other features Directx has.
I made a full on program in less then 2 hours

It takes me longer than that to find/correct the major bugs and do most of the error checking that I skipped over on simple programs.
"Full on" is pretty vague and could be something as trivial as a basic calculator admkrk.
closed account (10X9216C)
AceDawg45 wrote:
That, and OpenGL is only 3D, and doesn't have sound and other features Directx has.

Directx doesn't have sound support either. It's SDK is just packaged with a library that does sound and shares a similar name. You are telling me you pick an API not based on it's functionality, ease of use, readability and overall quality but simply which library is 1 click less effort for you to download?

I don't like having to download GLEW and GLUT and GLM and GL this GL that.

Are you actually telling me you use that god awful C math library that comes with directx? Just so you know all that directx stuff are separate libraries, so you could say Directx this and Directx that for Directx as well. It all just comes forced down your throat when you only want Directx.

It just seems like you are really lazy and shortsighted. A little extra effort to setup your project so that you can use an easier and better library is well worth the payoff. That includes directx, GLM is by no means limited to openGL, you can use it just as easily with Directx. It is the far superior choice than the Directx math library included in the Directx sdk.


As for learning GUI, i always laugh when i see someone say that. The code for a GUI library is so trivial, it isn't that hard to pick up, it is probably one of the easiest things to pick up in programming. What you should be more focused on is the design aspect, creating good and intuitive design for the GUI so that the users don't want to murder you when they have to go through a 10 level context menu to use a feature every 5 seconds. It really doesn't matter what library you use at that point.
"Full on" is pretty vague and could be something as trivial as a basic calculator admkrk.

Yes it is vague, but I took it to mean "more than trivial". Plus as spectral pointed out, with GUIs design is the hard part. A calculator or text editor more or less has a "standard" design that you do not want to change if you expect it to be useful.

I also find it amusing that OP says
...Qt Creator, ... has such pretty UIs that I love.

yet at the same time does not want to use Qt even though that is what was used to make Creator.
I actually tried about 2 weeks trying to get GLEW to work - got GLFW to work, but not GLEW. Some things worked, but most things I got an unhandled exception. After using DirectX a couple days, I like it for game graphics programming. I may try OpenGL in a while, but as for now, I am enjoying DirectX. Just note - I am not trying to start a war between the two, I have noticed it is easy to do that.


Anyway, as for the topic of this thread - I see that I worded the original question wrong. While typing, I meant, what would be the most useful to learn, or what would make the best of my career. I typed pretty much the farthest thing from that.

As for Qt. I do agree it is just like any other GUI library. I use it frequently. While Qt can find me a job in the future - I just thought that more jobs out there use other libraries. Metaphorically -
You have a perfect morning. Easy wake up, good sleep, good breakfast, just natural good mood. Then you have that thought "Wait. This seems... sketchy. This was too good of a morning. Something bad is gonna happen to me today..."

That is how I feel about it. Qt is just so... easy to learn, broad, powerful, fast, quick... It just has that feeling of suspicion...

Hope I cleared up some confusion
Well, you said Windows Forms was easy too, but you don't seem to draw any conclusions from that.
What is with FLTK or wxWidgets??

FLTK i don't really know, but i heared, it produces very efficient code.

I'm using wxWidgets. It is platformindependent, free / open-source, easy to program and quiet good documented (=> http://docs.wxwidgets.org/3.0/annotated.html).
Long times ago i used to program DOS / ANSI-C. After 15 years of almost no programming (except javascript) i started C++, Windows and GUI-programming at once, using wxWidgets. I needed only a few days to learn to use it.

For beginning there is also a visual form-designer availabel, which may help you to generate the code-basics.

Greetz,
Frank
Hey, sorry for taking so long to reply - my internet was down for the weekend.

Anyway, @helios, I forgot about mentioning that earlier this thread, so let me go over how I feel about that -
There isn't much skepticism in that for me because, One, there's a catch: It isn't crossplatform, and Two, from what I've heard (on here and other people), Windows Forms are more popularly used for GUI's. Over the weekend I asked some guy my mom knows that is a C++ programmer and he said that is what they use over whatever company he works for (some startup).


And, @artganseforth, I heard of wxWidgets, never of FLTK. Thanks for the tip though!
Topic archived. No new replies allowed.