OVERVIEW
wxWidgets along with Qt are the two most popular cross-platform GUI libraries for C++. wxWidgets has been ported to other languages as well like Python, Perl, Ruby etc. So if one is familiar with using wxWidgets in one language, they can leverage the same knowledge in another language.
This series of tutorials assumes that you are already familiar with the basics of C++ programming. Prior exposure to building desktop UI is a great plus point but not a necessity.
SETUP & INSTALLATION
The actual example source code samples will be the same whether you are building on Windows or MacOS or Linux. However the libraries and commands for converting source into executable will vary according to the OS platform being used.
We are using the latest version of wxWidgets which is 3.1.5 at this time. The procedure to setup wxWidgets under Linux (Debian/Ubuntu variants) is given here:
http://truelogic.org/wordpress/2021/10/31/setting-up-wxwidgets-environment-for-c-in-ubuntu-linux/
Building it under Windows 10 is given here:
http://truelogic.org/wordpress/2021/12/06/setting-up-wxwidgets-environment-for-c-in-windows-10/
If you are able to compile and build the sample application provided in either of the two posts, then you are ready to do programming using wxWidgets.
TABLE OF CONTENTS
Given below is the list of topics we will cover:
- 1. Introduction
- 2. Basics of Getting Started
- 2a. console
- 2b. wxString
- 2c. Process Control
- 2d. Platform Info
- 2e. Date and time
- 2f. Files & Directories
- 3. Windowing Basics
- 3a. Simple Window
- 3b. Application Icon
- 3c. Buttons & Labels
- 3d. Panels
- 3e Preview to Event Handling
- 4. Menus & Toolbars
- 4a. Menu and MenuItems
- 4b. Submenu
- 4c. Toolbar
- 4d. Multiple Toolbars
- 5.Layouts
- 5a. Absolute Positioning
- 5b. Dynamic Positioning with Sizers
- 5b-1. wxBoxSizer
- 5b-2. wxStaticBoxSizer
- 5b-3. GridSizer
- 5b-4. FlexGridSizer
- 5b-5. GridBagSizer
- 5b-6. Building a Complex UI
- 6.Event Handling
- 7.Dialogs
- 8.Widgets Part 1
- 8a.wxCheckBox
- 8b.wxBitmapButton
- 8c.wxToggleButton
- 8d.wxStaticLine
- 8e.wxStaticText
- 8f.wxSlider
- 9.Widgets Part 2
- 10.Drag & Drop
- 11.Graphics
- 12.Creating a Custom Widget
- 13.Non-GUI Objects and Classes
Leave a Reply