In this AutoHotkey Webinar we covered: Introduction to GUIs (Here is a link to scripts shared during the webinar)
Video Hour 1: High Level:
- Why you should create a GUI
- Pros / Cons about Using a GUI
- Pros / Cons about Programming a GUI
- Rules of Thumb / Tips
- Overview of various GUIs available in AutoHotkey
- Resources: Tutorials & Tools for building GUIs
Video Hour 2: Coding and Q&A
Script Highlight: TaskDialog from just me and TaskDialog Creator from
When should you consider a GUI
- Help select from a list of items that changes frequently
- Use dropdowns , radio buttons, etc. to control what can be selected
- Target audience using the tool is non-tech savvy
- The list you want to choose from is available progromatically (files in folder, different accounts, etc)
- You want to display data and be able to sort by columns keeping the rows intact
- You want to lock-down use of the tool
- You want to make sure certain values/fields get updated (tags for an email, subject line, etc)
- Your code is long and key data points that you change are mixed throughout the script
- Dealing with Images / Video files- Preview of image helps humans classify what “it” is
Pros / Cons of Using GUIs
Pros of Using GUIs
- Non-programmers can do a lot while knowing little
- Color / Animation can ease functionality / Usage
- Graphics can convey data
- Build in ways to reduce errors
- input box for path, etc
- “wizard” can be a template for end-user
Cons of Using GUIs
- Non-programmers can do a lot while knowing little (make sure you build-in safeguards*)
- Not as flexible / can typically only do what has been defined by designer
- Manually have to repeat process each use
- Poorly designed UI can be very painful
Pros / Cons of Programming GUIs
Pros of Programming GUIs
- Can “lock down” interaction (have drop-downs, radio buttons, etc. ) with specific commands (instead of free-form typing by user)
- Can reduce errors / mistakes by limiting options
Cons of Programming GUIs
- Users can do actions, in any order, at any time (Not procedural)
- Different screen resolutions
- Various input (Mouse, Keyboard, touch,etc.)
Rules of Thumb / Tips
- KISS- As they say, “less is more”.
- Use Tabs to help separate tasks
- Always “destroy” the GUI before you create it (yes, even the first time)
- Name your GUIs
- Label your inputs with pre-selected text or text control (e.g. edit fields)
- Keep your design-focus on the End-User
- Remember GUIs are EVENT driven (not linear – user can start “anywhere”)
- Listviews & Treeviews- Disable redraw, Put in new info, Enable redraw
- Build-in safeguards against users making mistakes
Quick Demonstrations (See this file for the scripts)
- Input box (multiple edit fields)
- Tabs, Checkboxes, Radio Buttons
- Resizable Edit
- ListView
- TreeView
- DropdownList, ComboBox, Context sensitive help
- On-Screen Display
- Installation / Progress Bar
- Editor with Menu bar
- Menus
Tutorials
- Make a Beautiful GUI in 15 lines or less by Jackie Sztuk
- Examples of Non-Standard GUIs (lots of interesting examples)
- CiveReborn / Hellbent Youtube GUI videos
- Mini GUI tutorials (bite-size)
- GUI Tutorials
- GUI controls & placement by Joe Glines
- Custom GUI controls with Hellbent & Joe Glines
Use HTML & CSS in your GUIs by JoeDF
Tools
- Anchor by Titan
- Attach by majkinetor
- Toolbar by majkinetor
- SmartGui Creator by Rajat
- AutoGui by Alguimist
- GUI_Creator by maestrith
- Advanced ListViews by dadepp
- ListView Custom Colors by maestrith
- Custom Selected Color by tmplinshi
- Cut, Copy, Paste, and Drag ListViews by Pulover
- GUI ListView controls by just me
- Scrollbars, GuiControl Auto-Position+Size system, and more! By evilC & HotkeyIt