When it comes to getting user input and performing an action in a Windows environment there are several convenient options:
- You can purchase a Microsoft development environment for several thousand dollars such as Visual Studio (or whatever is the latest name for it).
- Or you can hack together a VB Script solution and use popup input boxes to get user input.
- If a GUI style application is required another option is using VB for Applications (VBA) and writing the GUI’s in Microsoft Office. However using Microsoft Office to give you a GUI application has the draw back of requiring a MSO license on the target workstation. Adding ~$300+ AUD to the cost of your solution
Enter Open Source Software
I haven’t got a programming background so have not learnt C, C++ or any of the other compiled languages. But my experience and comfort zone has been with scripting languages such as VBScript, Kix and Perl.
So the natural choice was an Open Source Widget Toolkit with a scripting interface. wxWidgets is great as it provides native looking apps on a number of platforms.
For scripting Perl is ubiquitous on Linux and a simple download and install on Windows.
The glue that ties Perl to wxWidgets is known as wxPerl
When designing GUI’s I can’t just sit in front of notepad or vi and code till I have what I want. I definately require a WYSIWYG design interface and for wxPerl applications the answer is wxGlade. And while wxGlades first calling is for the wxPython scripting interface a simple radio button click enables you to output wxPerl code.
It may take some time to become familiar with how all the wxWidgets, wxPerl and wxGlade interact with each other. But there are resources on each components website to help. It will also pay to subscribe to the mailing lists, where you can request clarification when the documentation fails to enlighten.
So the result of my foray into wxPerl is a little app as shown in the following screen shots. Basically the application asks for input and then clicking print validates the input, creates a print file, which is then sent via the lpr command to a Label printing server.
The wxGlade GUI builder code runs on both Windows and Linux. The benefit of this is you can develop your GUI at home on Linux then send the wxg file to work and continue where you left off. Once you have completed the GUI and generated the wxPerl code you then need to add your custom code to actually get the application to do what you would like.