Difference between revisions of "Guides & Tutorials"

From WxWiki
Jump to navigation Jump to search
(expanded section with remaining articles, and split from main page replacement scratchpad)
 
m
 
(165 intermediate revisions by 56 users not shown)
Line 1: Line 1:
== Setting up Your IDE ==
+
The following are guides that can help with understanding various portions of the framework. There is also several [[samples|sample applications]] included with every release.
  
This section needs a lot of cleanup and reorganization. If there's anyone that can merge same IDE/Compiler version guides (there's duplicates of a few) if you work on that platform/version, any help would be appreciated.
+
<div style="background-color: #FFFFDD; border: 1px solid #808000; padding: 5px; margin: 1.5em; {{box-shadow}}">'''Looking for installation guides?''' They have been moved to [[Install|their own page here]].</div>
  
{| style="background: none; margin: 0px; padding: 0px;" border="0" cellpadding="0" cellspacing="0"
+
== wxWidget Design Patterns ==
! Windows
+
* [[Sharing info between dialogs]] - more a C++ issue than a wx one, but comes up very often on the forum so at least we have a place to point people to...
| style="background: #DDD; margin-left: 10px; margin-right: 10px;" | &nbsp;
+
* [[Events]] - Notes on using events in wxWidgets
! Mac OS
+
* [[KeyCodes]] - wxWidgets keyboard mapping
| style="background: #DDD; margin-left: 10px; margin-right: 10px;" | &nbsp;
+
* [[Subclassing WxControl]] - A simple example on how to subclass existing controls
! Linux
+
* [[wxSizer]] - Lots of helpful tips on sizers here
|-
+
* [[RTTI]] - The black art of wxWidgets RTTI (Runtime Type Information)
| style="padding: 10px; width: 30%;" valign="top" |
+
* [[Multiple Inheritance]] - The black art of using multiple inheritance in wxWidgets
* [[Windows IDEs]]
+
* [[Wilcox:Subclassing Top Level Windows]] - Best Practices when subclassing wxFrame and the like
* [[Instructions]] (Borland C++ Builder 5, page really needs renamed, but see about merging first)
+
* [[Using XML With WxWidgets]] - XML processing with wxWidgets
* [[User's Guide For VCpp 6.0]]
 
* [[MSVC Setup Guide]]
 
* [[MSVC .NET Setup Guide]]
 
* [[MSVC Setup Guide For Wx 2.5.4 And Later]]
 
* [[MS Free Tools And WxWidgets]]
 
* [[Installing WxWin]]
 
* [[Installing WxWin For MS Free Tools]]
 
* [[Installing WxWin MinGW]]
 
* [[Installing WxWin Watcom]]
 
* [[Dev-CPP Setup Guide]]
 
* [[BuilderX]] (Borland BuilderX)
 
* [[WxMSW Issues]]
 
| style="background: #DDD; margin-left: 10px; margin-right: 10px;" | &nbsp;
 
| style="padding: 10px; width: 30%;" valign="top" |
 
* [[Building WxWidgets With MacOS X]]
 
* [[MacOS X CodeWarrior 8 Setup Guide]]
 
* [[MacOS X CodeWarrior 9 Setup Guide]]
 
* [[MacOS X IDEs]]
 
* [[MacOS X ProjectBuilder Setup Guide]]
 
* [[Mac OS X And Xcode 1.1 Setup Guide]]
 
* [[Mac OS X And Xcode 1.5 Project Setup Guide]]
 
* [[Mac OS X And Xcode For Beginners]]
 
* [[Installing On MacOS Using CodeWarrior]]
 
* [[Installing On MacOS Using DarwinPorts]]
 
* [[Installing On MacOS X Using Apple's Developer Tools]]
 
* [[Installing WxMac]]
 
* [[Useful Xcode Data Formatters]]
 
* [[Reported Errors 2.6.1 Xcode 1.5 10.3.9]] (need to add VFD style template, and mark this: report in bug tracker after searching)
 
* [[Setting Environment Variable For XCode]]
 
* [[WxMac Issues]]
 
| style="background: #DDD; margin-left: 10px; margin-right: 10px;" | &nbsp;
 
| style="padding: 10px; width: 30%;" valign="top" |
 
* [[Linux IDEs]]
 
* [[Anjuta]]
 
* [[KDevelop]]
 
* [[Kdevelop Settings]]
 
* [[Cross-Compiling Under Linux]]
 
* [[Install The Mingw Cross-Compiler]]
 
|}
 
  
The following guides involve multiple platforms, they need to be split up and merged into one of the above guides.
+
== Miscellaneous Guides ==
 +
=== wxWiki Guides ===
 +
'''DCs (Drawing, rendering, printing)'''
 +
* [[Drawing on a panel with a DC]]
 +
* [[An image panel]]
 +
* [[Scrolling]]
 +
* [[Making a render loop]]
 +
* [[Printing]]
 +
* [[Painting your custom control]]
 +
* [http://code.google.com/p/wxcairo/ Mixing wxWidgets with Cairo (under construction)]
  
* [[IDEs]]
+
'''Text, languages, strings'''
* [[Windows And Linux IDEs]]
+
* [[Converting everything to and from wxString]]
* [[Compiler Issues]]
+
* [[Unicode]] - Unicode support in wxWidgets
* [[Compiling WxWidgets]]
+
* [[Internationalization]] - support for internationalization
* [[Compiling WxWidgets With MSYS-MinGW]] - While I know this guide can apply to multiple platforms, it would be best if it was split into separate focused guides to deal with issues involving the combination of other tools on that platform and it's easier to follow for new users on those specific platforms (without needing to figure out how those instructions apply to their specific platform).
+
* [[Reading text from a file]] and also writing
  
 +
'''Libraries'''
 +
* [[Creating A DLL Of An Application]]
 +
* [[Using DLL Version Of WxWidgets Compiled With Open Watcom]]
 +
* [[Programs That Support Plugins]] - Using DLLs
  
== Making an Installer ==
+
'''Resources and images'''
 +
* [[Resource Files]] - Using wxWidgets resource files (also known as XRC).
 +
* [[Embedding PNG Images]] - Including PNG image files into executables.
 +
* [[Using wxImage to load textures for OpenGL]]
  
* [[Making Installers]]
+
'''Executables, binaries, installers and distribution'''
* [[Mac]]
+
* [[Installers]] - Distributing your application on all platforms.
* [[Solaris]]
+
* [[Distributing WxWidgets Applications]]
* [[Unix-Linux]]
+
* [[Reducing Executable Size]] - some tips
* [[Windows]]
+
 
 +
'''Internet and networking'''
 +
* [[Launching The Default Browser]] - kinda tricky prior to wx 2.6
 +
* [[Calling The Default Browser In WxHtmlWindow]] - How to call the external browser on Internet URLs
 +
* [[Getting IP Address Of Host]]
 +
* [[Download a file from internet]]
  
 +
'''Documentation'''
 +
* [[WxWidgets Source Oddities]] - About wxT(), __GNUG__, WXUNUSED(), etc..
 +
* [[Undocumented Parts Of WxWidgets]]
 +
* [[wxWidgets Source Code Overview]]
 +
* [[Updating to the Latest Version of wxWidgets]] - Additional user notes about upgrading wxWidgets between new major and minor versions (ie: 2.6 to 2.8) not found in docs/changes.txt.
  
== Miscellaneous Guides ==
+
'''Events, threads, flow'''
 +
* [[WxBase Eventloop]] - implementing an event loop and timers in wxBase
 +
* [[Inter-Thread and Inter-Process communication]]
 +
* [[Catching key events globally]]
 +
* [[Dragging a wxWindow around]]
  
* [[KeyCodes]] - wxWidgets keyboard mapping
+
'''Uncategorized'''
 +
* [[Making a new reusable widget by combining existing widgets]]
 
* [[Command-Line Arguments]]
 
* [[Command-Line Arguments]]
 
* [[Debugging A WxWindow Application]] - Using __WXDEBUG__, for example.
 
* [[Debugging A WxWindow Application]] - Using __WXDEBUG__, for example.
* [[Events]] - Notes on using events in wxWidgets
 
* [[Subclassing WxControl]] - A simple example on how to subclass existing controls
 
* [[Unicode]] - Unicode support in wxWidgets
 
* [[Internationalization]] - support for internationalization
 
* [[WxWidgets Source Oddities]] - About wxT(), __GNUG__, WXUNUSED(), etc..
 
* [[Undocumented Parts Of WxWidgets]]
 
* [[Distributing WxWidgets Applications]]
 
 
* [[Avoiding Memory Leaks]] - Partly general C++ programming tips, but also some information on wxWidgets' automatic memory management that's interesting for experienced C++-programmers.
 
* [[Avoiding Memory Leaks]] - Partly general C++ programming tips, but also some information on wxWidgets' automatic memory management that's interesting for experienced C++-programmers.
* [[Resource Files]] - Using wxWidgets resource files (also known as XRC).
 
* [[Embedding PNG Images]] - Including PNG image files into executables.
 
* [[Creating a Linux shared lib (dll)]]
 
* [[Creating A DLL Of An Application]]
 
* [[Using DLL Version Of WxWidgets Compiled With Open Watcom]]
 
* [[Reducing Executable Size]] - some tips
 
 
* [[Namespaces]] - How to derive from wxWidgets classes and use a namespace
 
* [[Namespaces]] - How to derive from wxWidgets classes and use a namespace
* [[Using XML With WxWidgets]] - XML processing with wxWidgets
 
* [[Programs That Support Plugins]] - Using DLLs
 
 
* [[Using Text Templates]] - example for combining wxHashMap, wxVariant to make text templates, especially embedding wxImage in a wxHTML page.
 
* [[Using Text Templates]] - example for combining wxHashMap, wxVariant to make text templates, especially embedding wxImage in a wxHTML page.
* [[RTTI]] - The black art of wxWidgets RTTI (Runtime Type Information)
 
* [[Multiple Inheritance]] - The black art of using multiple inheritance in wxWidgets
 
 
* [[ODBC]] - howto work with it under wxWidgets
 
* [[ODBC]] - howto work with it under wxWidgets
* [[WxBase Eventloop]] - implementing an event loop and timers in wxBase
 
* [[Precompiled Headers]] - using pch with MinGW
 
 
* [[Wx In Non-Wx Applications]]
 
* [[Wx In Non-Wx Applications]]
* [[supporting x64 and Win32 within one solution]] - for VS2005 (Windows)
+
* [[WxMac_BadgeLabels]] - wxMac specific: How to display a badge label at the dock icon
* [[Launching The Default Browser]] - kinda tricky prior to wx 2.6
+
* [[Adding a custom lexer with syntax highlighting and folding to a WxStyledTextCtrl]] - Adding your own customized "lexer" to a wxStyledTextCtrl to highlight and fold custom formats
* [[Calling The Default Browser In WxHtmlWindow]] - How to call the external browser on Internet URLs
 
* [[Getting IP Address Of Host]]
 
* [http://www.wxwidgets.org/technote/install.htm Obtaining the path of the application] - Not the current working directory, scroll down to 'Tips for finding the application path'.
 
* [[Linking With Gtk And Running On Any Linux]] - Deliver a binary package for all linux distributions
 
* [[Wx Patching]] - How to submit a patch in 3 steps
 
* [[MSDN Library And WxWidgets Help File]] - Learn how to integrate help files (specifically wxWidgets' ones) into the MSDN Library v6.0.
 
* [[Cvs]] - the wxWidgets CVS repository
 
  
 +
=== External Guides ===
 +
* [http://www.geocities.com/lcassioli/wxbasic/ wxBasic utilities ] - Describes how to build your complete IDE for writing Windows/Linux applications using the freeware [http://fixedsys.com/context ConTEXT text editor] and the [http://wxbasic.sourceforge.net wxBasic] binding. Contains English and Italian tutorials.
 +
* [https://www.wxwidgets.org/docs/technote/install.htm Obtaining the path of the application] - Not the current working directory, scroll down to 'Tips for finding the application path'.
 +
* [http://programphases.com/?page_id=971 Program Phase 1-16] - implements [http://programphases.com/?page_id=6 Program Phase Task 1] using C++ and wxWidgets on the Linux and Windows platforms.
  
 
== Tutorials ==
 
== Tutorials ==
 +
*[http://hosannahighertech.co.tz/forums/showthread.php?tid=60 wxWidgets 101: Building Professional Application with C++(Three Parts: Beginner, Intermediate and Advanced)]
  
These tutorials should be condensed into single articles if possible (the shorter ones anyway).
+
* [https://coderslegacy.com/wxpython-tutorial/ wxPython Widget Tutorial Series]
 
+
* [https://pythonspot.com/wx/ wxPython tutorials]
 +
* [http://neume.sourceforge.net/sizerdemo/ Understanding Sizers]
 +
* [http://www.xs4all.nl/~mbertens/wxSizers/wxSizers.pdf Simple HOW-TO how Sizers work]
 +
* [http://zetcode.com/tutorials/wxwidgetstutorial/ Tutorial by zetcode]
 
* [[Writing Your First Application]]
 
* [[Writing Your First Application]]
 
** wxTutorial by Franky Braem
 
** wxTutorial by Franky Braem
Line 131: Line 105:
 
*** [[Writing Your First Application-Common Dialogs]]
 
*** [[Writing Your First Application-Common Dialogs]]
 
*** [[Writing Your First Application-Closing Remarks]]
 
*** [[Writing Your First Application-Closing Remarks]]
 +
** Programming with wxWindows (by David Beech)
 +
*** [[Beech:First steps]]
 +
*** [[Beech:Using controls]]
 +
*** [[Beech:Using events]]
 +
*** [[Beech:Using common dialogs]]
 +
*** [[Beech:Using custom dialogs]]
 +
*** [[Beech:Using custom dialogs with sizers]]
 +
*** [[Beech:Creating other frames]]
 +
* [[Building wxMGL Port]]
 
* [[Compiling A WxWidgets Application]]
 
* [[Compiling A WxWidgets Application]]
 
* [[Compiling Using MSVC On The Commandline]]
 
* [[Compiling Using MSVC On The Commandline]]
Line 140: Line 123:
 
** [[WxPrintDialog-WxBasic]]
 
** [[WxPrintDialog-WxBasic]]
 
** [[WxTextEntryDialog-WxBasic]]
 
** [[WxTextEntryDialog-WxBasic]]
 +
* [http://tech.groups.yahoo.com/group/wxMS_developers/ wxMS_developers] Tutorials and Demos
 +
* [http://wxdsgn.sourceforge.net/?q=node/13 Minimal wxFrame App using wx-DevC++]
 +
* [http://wxdsgn.sourceforge.net/?q=node/11 Extended wxFrame App using wx-DevC++]
 +
* [http://wxdsgn.sourceforge.net/?q=node/14 OpenGL application using wx-DevC++]
 +
* [http://twinforms.com/wxforms-screencasts.htm Screencast for creating simple Dialog using wxForms]
 +
* [http://twinforms.com/products/wxformsdelphi/screencasts.php Screencast for creating Hello World using wxForms for Delphi]
 +
* [https://forums.wxwidgets.org/viewtopic.php?p=197038#p187276 Building wxWidgets and compiling samples with CLion IDE]

Latest revision as of 03:03, 3 November 2021

The following are guides that can help with understanding various portions of the framework. There is also several sample applications included with every release.

Looking for installation guides? They have been moved to their own page here.

wxWidget Design Patterns

Miscellaneous Guides

wxWiki Guides

DCs (Drawing, rendering, printing)

Text, languages, strings

Libraries

Resources and images

Executables, binaries, installers and distribution

Internet and networking

Documentation

Events, threads, flow

Uncategorized

External Guides

Tutorials