What do you think of wxWidgets?

Started by
10 comments, last by gan 15 years, 5 months ago
I'm planning to use wxWidgets to make windowed applications in C++ soon. Before, I tried out a little Win32 coding, and I didn't like it very much, mostly because of the fact that you needed about 400 lines of code to make a simple windowed applications. So, I don't want to learn Win32. But after looking around the forums, I figured that wxWidgets is a pretty good choice. It seems fairly easy and most importantly it's portable (I'm planning to make a lot of portable applications once I get a Mac or Linux). I'm notsure exactly about all the things that it can do; all I really know is that it's capable of making windowed applications. That's it. Anyway,I wanted to hear your opinions about wxWidgets before I start learning it. If you cou ld please answer these questions, I would very much appreciate it. 1. How fast is wxWidgets compared to Win32 and other windowed API's? 2. What are the advantages (besides its portability and simplicity) and disadvantages of using it? 3. I heard that the Win32 API is closer to Windows since it was basically made for Windows, and because of that you'll have more control with your programs if you use the Win32 API. Is this true? 4. What kinds of things can the Win32 API do that wxWidgets can't? 5. When you download the 17MB wxWidgets package (the "All Package") does it give you all the libraries / modules that are included with the latest release? 6. What are some things that wxWidgets can do that the Win32 API can't, and what are some of the things that wxWidgets can do better than the Win32 API? 7. Is wxWidgets capable of some Visual Basic functions, such as (in VB6) SendKeys, SetCursor, GetCursor. Also, is it capable of reading pixels and their colors on your computer screen or in a various window? Thank you in advance.
Advertisement
Quote:
1. How fast is wxWidgets compared to Win32 and other windowed API's?


It is realtively good compared to win32 api. But remember C++ has a little very overhead over C. But not noticeable.

Quote:
2. What are the advantages (besides its portability and simplicity) and disadvantages of using it?

Its very well portable, but I have no about phone portability. The disadvantage is lack of tutorials. And the documentation and community is kinda shitty. Which is why I didn't bother with it and went to Qt. But if you buy the book its pretty good.

Quote:
3. I heard that the Win32 API is closer to Windows since it was basically made for Windows, and because of that you'll have more control with your programs if you use the Win32 API. Is this true?

wxWidgets is just wrapped around it just like every other api. You just don't deal with the underlying api. Thought you can achieve it if you need to. Actually you have more control with wxWidgets than you do with win32. It takes longer to achieve what you would with wxWidgets.

Quote:
4. What kinds of things can the Win32 API do that wxWidgets can't?

When I used wxWidgets I got much much more than I could with win32. The only thing you really lack but maybe its now possible is owner drawn. Which you could probably achieve by inheriting a control.

Quote:
5. When you download the 17MB wxWidgets package (the "All Package") does it give you all the libraries / modules that are included with the latest release?

You should jsut download the wxMSV or whatever its called. The others are pretty much for other systems.

Quote:
6. What are some things that wxWidgets can do that the Win32 API can't, and what are some of the things that wxWidgets can do better than the Win32 API?

Less coding than you do with win32. Event based is much better. Networking is pretty much better. Better OpenGL. You can use DirectX with it if you want. Overall you actually achieve everything better with wxWidgets than you would win32.

Quote:
7. Is wxWidgets capable of some Visual Basic functions, such as (in VB6) SendKeys, SetCursor, GetCursor. Also, is it capable of reading pixels and their colors on your computer screen or in a various window?


You can do that too. Its just a big and better wrapper. But remember its all classes and what not.

I actually found that the documentation is good; tons of samples and a documented API. The thing I don't like about Qt is that you cant switch licenses in the middle of your development, ie go from open-source to the paid version. wxWidget don't have any such clause AFAIK.
Quote:Original post by xZekex
Actually you have more control with wxWidgets than you do with win32.
Actually, you've got less control with wxWidgets than with Win32, with the tradeoff that wxWidgets can do a lot more "out of the box" than Win32 can. Win32 can do anything wxWidgets can, whilst the opposite is not true (putting aside making your own improvements to wxWidgets) - you would however have to do a lot more work when you're writing your own Win32 code. In general it's a good thing than you get less control with wxWidgets (or other similar libraries) because it saves you doing so much tedious work.

- Jason Astle-Adams

Quote:Original post by sirGustav
I actually found that the documentation is good; tons of samples and a documented API. The thing I don't like about Qt is that you cant switch licenses in the middle of your development, ie go from open-source to the paid version. wxWidget don't have any such clause AFAIK.


Yeah but how will they know if you don't release your code or even tell them?

Quote:Original post by jbadams
Actually, you've got less control with wxWidgets than with Win32, with the tradeoff that wxWidgets can do a lot more "out of the box" than Win32 can. Win32 can do anything wxWidgets can, whilst the opposite is not true (putting aside making your own improvements to wxWidgets) - you would however have to do a lot more work when you're writing your own Win32 code. In general it's a good thing than you get less control with wxWidgets (or other similar libraries) because it saves you doing so much tedious work.


Can you give an example of where you have less control?

But yeah I know pretty much every wrapper is around win32. But the main point, though when you use wxWidgets. You don't have to worry about writing the same old code over and over and over again like you would with win32. With wxWidgets, you ust inherit the controls or whatever wx calls them. Well your correct on that last sentence. But it depends on what kinda control your really talking about. Most of the time, you don't really need like major control. But I know your not saying that. So its really not all that important. As long as it gets the job done. And trying to create your own wrapper is more of a pain than anything. Just another reinventing the wheel :P. But theres different needs for different people.
Quote:Original post by xZekex
Can you give an example of where you have less control?

But yeah I know pretty much every wrapper is around win32. But the main point, though when you use wxWidgets. You don't have to worry about writing the same old code over and over and over again like you would with win32. With wxWidgets, you ust inherit the controls or whatever wx calls them. Well your correct on that last sentence. But it depends on what kinda control your really talking about. Most of the time, you don't really need like major control. But I know your not saying that. So its really not all that important. As long as it gets the job done. And trying to create your own wrapper is more of a pain than anything. Just another reinventing the wheel :P. But theres different needs for different people.

The two paragraphs above say absolutely nothing.
From my experience so will wxWidgets do the work for you and let you do the real coding :). (Together with wxFormBuilder)

Though i find the documentation lacking and the Wiki is a mess. (You need to search on Google to find anything relevant about the Build process >_>) Otherwise with these flaws is this a pretty good API :3.
Quote:Original post by ChJees
From my experience so will wxWidgets do the work for you and let you do the real coding :). (Together with wxFormBuilder)

Though i find the documentation lacking and the Wiki is a mess. (You need to search on Google to find anything relevant about the Build process >_>) Otherwise with these flaws is this a pretty good API :3.


What do you mean by build system? I suggested the wx team switch to CMake to make the building system better. But they won't. And one bad thing is they won't drop ANSI support and just have it full unicode. Thats the other bad things about it.
Quote:Original post by xZekex
Quote:Original post by jbadams
Actually, you've got less control with wxWidgets than with Win32, with the tradeoff that wxWidgets can do a lot more "out of the box" than Win32 can.[...]
Can you give an example of where you have less control?

But yeah I know pretty much every wrapper is around win32.
You just answered your own question - by definition wxWidgets as a wrapper around Win32 cannot do anything that you could not also do using raw Win32 if you put in enough work; the whole point of using such a library is to save yourself from having to actually do all that work.

I believe what you're trying to describe is more along the lines of wxWidgets being more expressive -- you can get a lot more done with a lot less hassle and coding -- that's not the same thing as having more control.



As an aside, you may want to consider giving your posts a quick proofread before submitting - you tend to get a bit rambly and unstructured, and as Oluseyi observed above it can lead to there being very little actual meaning effectively communicated in some of your posts.

- Jason Astle-Adams

Build as in making DLLs and Static Libraries.

This topic is closed to new replies.

Advertisement