Results 1 to 12 of 12

Thread: Qt or WXWidgets

  1. #1
    Join Date
    Mar 2017
    Posts
    1
    Qt products
    Qt5
    Platforms
    Windows

    Question Qt or WXWidgets

    Should I learn Qt or WXWidgets?? And what is the best source for learning these platforms?

  2. #2
    Join Date
    Jan 2008
    Location
    Alameda, CA, USA
    Posts
    4,563
    Thanks
    254
    Thanked 727 Times in 717 Posts
    Qt products
    Qt5
    Platforms
    Windows Android

    Default Re: Qt or WXWidgets

    The Qt user community is huge, with many people active in supporting and maintaining Qt. There is a publicly-traded company responsible for overseeing the development and distribution of Qt. There are many books and other publications on Qt, as well as forums such as this one.

    I do not know the size of the wxWidgets user community, but my sense is that it is a lot smaller than Qt's. The development appears to be a mostly volunteer effort.

    So if you are looking to learn a cross-platform toolkit and hope to get a job programming with it, I think you would probably be better to learn Qt.

    This is just my personal opinion and others may have different ideas.
    <=== The Great Pumpkin says ===>
    Please use CODE tags when posting source code so it is more readable. Click "Go Advanced" and then the "#" icon to insert the tags. Paste your code between them.

  3. #3
    Join Date
    Apr 2017
    Posts
    3
    Qt products
    Platforms
    Windows

    Default Re: Qt or WXWidgets

    I think Qt would be better. Because I use Qt exclusively for GUI applications. There are more reasons to do so.

    Qt works great on Linux and Mac OS X with native look.

    Qt Creator is a good IDE to design and develop Qt apps that works on all platforms.

    Qt is now available for Android, iOS and Windows phone.

    It is really easy to build and manage Qt projects, or integrate 3rd party API/Libraries like OpenGL, OpenCV, Boost, C4 or anything.

    Qt extends C++ with MOC which is a great feature.

    I love Qt's full featured documentation.

    wxWidget is also great, but I never used them. I would suggest you to create a sample app both in wxWidget and Qt. Then you would be able to differentiate things.

  4. #4
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,713
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: Qt or WXWidgets

    Should I learn Qt or WXWidgets??
    Why "or" and not "and"?

    What are the requirements of your project that you want to implement?
    On which hardware should it run?
    What type of UI (if any) do you need?
    Based on the answers to these (and further) questions, you can compare which of the frameworks give you the best match.
    As the poster before me wrote, its a good idea to try both to get a feel for the difference.
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  5. #5
    Join Date
    Jan 2008
    Location
    Alameda, CA, USA
    Posts
    4,563
    Thanks
    254
    Thanked 727 Times in 717 Posts
    Qt products
    Qt5
    Platforms
    Windows Android

    Default Re: Qt or WXWidgets

    Why "or" and not "and"?
    Mainly because of the learning curve required to learn and remember the huge APIs for both kits. You can be a mediocre programmer in two similar (but different) toolkits, constantly having to pause to look up the name of a class or method, or be expert in one of them so the code flows freely because you have been able to commit to memory the things you use most often.

    I agree with high_flyer and vincottel; try the same project with both and see which you like best. Or as I said, if your goal is to get a job which pays you to write code using one of them, then do some research and count the number of job postings which require the use of each one.
    <=== The Great Pumpkin says ===>
    Please use CODE tags when posting source code so it is more readable. Click "Go Advanced" and then the "#" icon to insert the tags. Paste your code between them.

  6. #6
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,713
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: Qt or WXWidgets

    Mainly because of the learning curve required to learn and remember the huge APIs for both kits.
    So, things that are difficult to learn should not be learned? because that is the subtext in your sentence there.
    Also, its simply a matter of time.
    I am sure you too are more than proficient in more than just one toolkit.
    As time passes you can be expert on more than just one toolkit.
    However, I was not talking about being an expert.
    Learning a toolkit does not mean you have to be an expert, only that you can "find your way around" and know in general how it ticks, or enough for your to be able to do meaningful work with it.
    This helps when you need to make a decision about using it or not to solve a particular problem.
    If you only limit your self to learn one toolkit you'll never know if it is the best choice for your next project.
    Not to mention that any professional developer should know more than just one toolkit (but we don't know if the OP is a professional developer, I have to admit)

    You can be a mediocre programmer in two similar (but different) toolkits, constantly having to pause to look up the name of a class or method, or be expert in one of them so the code flows freely because you have been able to commit to memory the things you use most often.
    I agree with the base line - you usually will tend to be better at a specific tool kit than another for all kinds of reasons.
    But you always are better off if your are mediocre with the toolkits you are mediocre with than not knowing them at all.
    I develop with Qt since Qt2.0, which is for me like 16 year by now.
    I got my "Nokia Certified" simply because at one of the dev days there was an offer to do it for free, so I just went in and did it with 0 preparation.
    Even after 16 years I still work very closely with the documentation, and I know there is so much I still don't know.
    A real expert never parts from the documentation in my view.
    So in my work I actually do "constantly pause and look up the name of a class or method" and I do consider my self to be an expert (and my employer too).
    I probably consider my self an expert because I do this, not because I don't have to.
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  7. #7
    Join Date
    Jan 2008
    Location
    Alameda, CA, USA
    Posts
    4,563
    Thanks
    254
    Thanked 727 Times in 717 Posts
    Qt products
    Qt5
    Platforms
    Windows Android

    Default Re: Qt or WXWidgets

    So, things that are difficult to learn should not be learned? because that is the subtext in your sentence there.
    No, not what I mean at all. If you are just starting out (which I think the OP is) then you are more likely to become proficient in cross-platform GUI development if you stick to a primary language (C++ or Python, typically) and choose one toolkit on which to focus your learning. If you take a shotgun approach, you may find you know a little bit about a lot, but you don't really have competitive skills in your job or the market. It takes you a long time to write a program, and to be a good programmer, you need to be able get into a "zone" where the code just flows out. If you are being forced to stop, look something up, and then try to remember how you wanted to go forward, it will be harder to write good code and you will be slow at doing it.

    It takes time to learn any new language or toolkit. Even though I have been developing using Qt for 10 years, I'm still learning. I don't know anything about QML beyond the basics. It would take a year to be fluent enough to write a program of any size. And Qt Assistant is always open on my desktop too, because I don't remember the exact syntax for every one of the 100 or so methods in QString or a lot of other classes.

    If you only limit your self to learn one toolkit you'll never know if it is the best choice for your next project.
    This is true. After almost 30 years of C++ programming, I have been surprised at how quickly I can prototype some complex things using Python, SciPy, NumPy, matplotlib, and some of the other tools in the Python universe. To do the same thing in C++ means either writing the code yourself or finding LPGL or commercial libraries, and then beating on them (or your code) until they all play well together. The Python world seems much more congenial. I am seriously considering using it as a platform for the next product, with C++ sitting in the passenger seat.

    Not to mention that any professional developer should know more than just one toolkit.
    Also true. In my case, before Qt it was 10 years of MFC in Windows, and before that 5 years in Motif and XWindows. Once you learn one GUI development toolkit, the next one is easier because in general the principles are the same, just a different API to remember. The same is true for programming languages - you can hand-write a parser in C / C++ or you can let lex and yacc or QRegularExpression do it for you.

    "Nokia Certified"
    Maybe it was free, but it does look impressive and you would not have passed if you didn't know your stuff.
    <=== The Great Pumpkin says ===>
    Please use CODE tags when posting source code so it is more readable. Click "Go Advanced" and then the "#" icon to insert the tags. Paste your code between them.

  8. #8
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,713
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: Qt or WXWidgets

    Didn't mean to start a discussion really, was just my two cents.
    I think we are on the same page - and it seems we have a similar history too (in terms of where we come form with toolkits). :-)
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  9. #9
    Join Date
    Aug 2017
    Location
    Philippines
    Posts
    4
    Qt products
    Qt5
    Platforms
    Windows

    Default Re: Qt or WXWidgets

    I use both. Try Qt first.

  10. #10
    Join Date
    Jan 2008
    Location
    Alameda, CA, USA
    Posts
    4,563
    Thanks
    254
    Thanked 727 Times in 717 Posts
    Qt products
    Qt5
    Platforms
    Windows Android

    Default Re: Qt or WXWidgets

    I use both. Try Qt first.
    OK, so why? Is it easier to learn Qt first and then pick up wxWidgets? Some other reason?
    <=== The Great Pumpkin says ===>
    Please use CODE tags when posting source code so it is more readable. Click "Go Advanced" and then the "#" icon to insert the tags. Paste your code between them.

  11. #11
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    33,364
    Thanks
    3
    Thanked 5,013 Times in 4,791 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Wiki edits
    10

    Default Re: Qt or WXWidgets

    The question is tricky because Qt and wxWidgets are really on different layers of software development. Correct me if I'm wrong but wxWidgets is basically a toolkit that wraps functionality of other toolkit engines into its own APIs ("wxWidgets defines a common API across platforms, but uses the native graphical user interface (GUI) on each platform, so your program will take on the native look and feel that users are familiar with."). There is even a port of it that uses Qt as its backend.

    Qt on the other hand is an application development framework and goes far beyond just being a toolkit.

    Of course I may be biased but I'd say you should go for Qt because by using it you will be able to do so much more compared to wxWidgets.
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  12. #12
    Join Date
    Nov 2014
    Posts
    32
    Thanked 1 Time in 1 Post
    Qt products
    Platforms
    Windows

    Default Re: Qt or WXWidgets

    Qt works great on Linux and Mac OS X with native look.

Similar Threads

  1. Programming patterns, code structure? C++, Qt & wxwidgets
    By nardev in forum General Programming
    Replies: 30
    Last Post: 10th December 2010, 15:48
  2. porting from wxwidgets & need event help
    By ntp in forum Qt Programming
    Replies: 1
    Last Post: 12th December 2008, 08:04
  3. Qt vs wxWidgets
    By mickey in forum General Discussion
    Replies: 4
    Last Post: 14th March 2008, 20:29

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.