GUI Design • Script Languages for Guis • GUI Design Do’S & Don’Ts Brian H

Total Page:16

File Type:pdf, Size:1020Kb

GUI Design • Script Languages for Guis • GUI Design Do’S & Don’Ts Brian H Outline • Background GUI Design • Script languages for GUIs • GUI design do’s & don’ts Brian H. Toby NIST Center for Neutron Research Why use a GUI? Portable GUIs GUI = Graphical User Inferface Windows only? • A well-designed GUI speeds learning Support for Linux & Mac offers wider – Opens software to occasional users & range of users & growth into parallel novices processing • Scaleable: offers power tools to experts Portable GUI tools 1st vs 2nd Generation GUIs • Compiled (usually C++) packages – FLTK (www.fltk.org) – wxWidgets [nee wxWindows] (www.wxwidgets.org) • Virtual Machine – Java • Script languages – Python + Tk, +wxWidgets, +GTK • GUI Builders: wiki.python.org/moin/GuiProgramming – Tcl/Tk (www.tcl.tk & comp.lang.tcl) 1 IMHO 1: GUIs do not need Pros & cons of scripting tremendous speed Pros Cons • GUIs interact with people, who cannot • Easy to code • Slower than tell the difference between a 10 µsec • Test small routines compiled code vs a 50 millisec screen paint • Extensible when • Debugging can be speed is needed non-trivial • Highly portable • Add code at run time IMHO 2: Where possible don’t Example: Calling an external incorporate code into script language, use external programs program CMPR EditCell replaced SGI GL program When more extensive computations are MANDEX: animate powder diffraction line needed, one can pass information to positions an external program, run it & read back • 1st draft: run FORTRAN program each time slider is moved results – Fast enough – More portable • Final version: modify FORTRAN output for – Easier to debug direct parsing by interpreter – More than fast enough: overhead of write, – Even faster! fork & read is usually trivial 1st vs. 2nd gen. output ICD H K L MULT 11 0 0 1 2 -- 1 17.7176 5.00000 11 0 1 1 2 -- 2 28.5434 3.12348 set dgen1(x) { 11 1 0 0 2 -- 3 29.7447 3.00000 11 1 107 . 7 1 2 9 710 7 2 22. 1-9-1 5 9 7 4 2 83.45.385383285 7 22.95.77234688317 11 -1 304 . 8 2 4 4 612 9 3 52. 8-6-7 8 5 1 35 3 73.44.186353880 2 24.15.76284383496 11 0 402 . 5 8 3 1 128 4 4 52. 2-7-5 0 6 6 46 4375..285797155 9 1 24.85.09080109603 Thoughts on GUI design 11 1 } 1 1 2 -- 7 41.6947 2.16366 11 -1 s e t1 d g e n 1 (1h ) { 2 -- 8 41.6947 2.16366 11 0 10 0 12 1 - 12 -0- 1 -91 402 . 519 4-71 02.12000 11 1 } 0 2 2 -- 10 47.2722 1.92055 11 -1 s e t0 d g e n 1 (2k ) { 2 -- 11 47.2722 1.92055 11 0 20 1 01 0 02 -0- 1 1 21 418 . 909 5 50 21.85695 11 1 } 1 2 2 -- 13 52.8140 1.73133 set dgen1(l) { 1 1 0 1 1 2 1 1 2 2 2 1 } 2 2nd Generation GUIs depend • Geographic proximity helps connect GUI on a visual short-hand components • Analogy to physical things – Push Buttons/Toggle buttons • Separators (boxes, – Notebook tabs lines) keep sets of items distinct • Last operation in bottom corner – MS: Save/Cancel – Motif: Apply/Accept/Cancel • GUIs often follow visual conventions Other Design Goals • Screen space is valuable - don’t waste it • A little bit of color helps guide the eye • Too much color is confusing GUI design: – Keep contrast levels high (have pity on the color blind) Hall of Fame & Shame • Try to use color consistently Another of my “greatest hits” CIFEDIT: not simple but easy EXPGUI 3 Multi-step processes are Multi-step processes are tough with GUIs tough with GUIs Multi-step processes are Multi-step processes are tough with GUIs tough with GUIs Multi-step processes are Multi-step processes are tough with GUIs tough with GUIs 4 I don’t know how to make this I don’t know how to make this more intuitive more intuitive I don’t know how to make this I don’t know how to make this more intuitive more intuitive I don’t know how to make this more intuitive Even worse 5 Even worse Even worse Even worse Conclusions • Script languages are great for portable GUI design • Intuitive GUIs take considerable thought • Use conventional designs where possible • Multi-step procedures are tough to make intuitive – Tutorials help • Users really like GUIs 6.
Recommended publications
  • In Silico Docking Analysis of CCL28 (CC Motif Chemokine Ligand
    F1000Research 2019, 8:313 Last updated: 21 SEP 2021 RESEARCH ARTICLE In silico docking analysis of CCL28 (C-C motif chemokine ligand 28) and astragalin as the potential inhibitor of rheumatoid arthritis [version 1; peer review: 1 approved, 1 approved with reservations] Sadaf Noor, Syeda Tahira Qousain, Syed Aun Muhammad Institute of Molecular Biology and Biotechnology, Bahauddin Zakariya University, Multan, Punjab, 60800, Pakistan v1 First published: 20 Mar 2019, 8:313 Open Peer Review https://doi.org/10.12688/f1000research.18541.1 Latest published: 20 Mar 2019, 8:313 https://doi.org/10.12688/f1000research.18541.1 Reviewer Status Invited Reviewers Abstract Background: Rheumatoid arthritis is an inflammatory and chronic 1 2 disease of the joints affecting 1% of the world’s population. Women are three times more likely to be affected than men. Many drugs are version 1 being used for the treatment of rheumatoid arthritis but they often 20 Mar 2019 report report have severe side effects. C-C motif chemokine ligand 28 (CCL28) recruits leukocytes and other proinflammatory factors to the site of 1. Ihsan Ul Haq, Quaid-i-Azam University, joint inflammation. The purpose of the present research is the computational evaluation of astragalin, a natural flavonoid extracted Islamabad, Pakistan from black tea, as an inhibitor of CCL28 by in silico docking. 2. Sagarika Biswas, Institute of Genomics and Methods: The three-dimensional structure of CCL28 to act as a molecular target was obtained from the Protein Data Bank (PDB ID: Integrative Biology, New Delhi, India 6CWS). The quality of the CCL28 structure was assessed using Phyre2 and Molecular Operating Environment (MOE) software was used for Any reports and responses or comments on the binding affinity analysis.
    [Show full text]
  • Wxshapeframework: an Easy Way for Diagrams Manipulation in C++ Applications
    WSEAS TRANSACTIONS on COMPUTERS Michal Bliznak, Tomas Dulik, Vladimir Vasek WXSHAPEFRAMEWORK: AN EASY WAY FOR DIAGRAMS MANIPULATION IN C++ APPLICATIONS MICHAL BLIŽŇÁK1, TOMÁŠ DULÍK2, VLADIMÍR VAŠEK3 Department of Informatics and Artificial Inteligence1, 2, Department of Automation and Control Engineering3 Faculty of Applied Informatics, Tomas Bata University Nad Stráněmi 4511, 760 05, Zlín CZECH REPUBLIC [email protected], [email protected], [email protected] Abstract: wxShapeFramework is new cross-platform software library written in C++ programming language which is suitable for creation of software applications manipulating diagrams, images and other graphical objects. Thanks to the underlying technologies such as wxWidgets toolkit and its XML-based persistent data container add-on called wxXmlSerializer it is an ideal solution for rapid and easy cross-platform visualisation software development. The paper reveals how the wxSF allows user to easily create applications able to interactively handle various scenes consisting of pre-defined or user-defined graphic objects (both vector- and bitmap-based) or GUI controls, store them to XML files, export them to bitmap images, print them etc. Moreover, thanks to applied software licence the library can be used for both open-source and commercial projects on all main target platforms including MS Windows, MacOS and Linux. Keywords: Diagram, vector, bitmap, GUI, wxWidgets, wxXmlSerializer, wxShapeFramework, wxSF, C++ 1 Introduction called shapes (including basic rectangular and elliptic shapes, line and curve shapes, polygonal shapes, static Modern software applications often need the ability to and in-place editable text, bitmap images, etc.). graphically represent various data or logical structures, information flows, processes and similar The wxSF allows to define relationship between abstract information types in the form of diagrams.
    [Show full text]
  • IP Log for Eclipse.Platform Release 4.0, July 2010 Licenses
    IP Log for eclipse.platform Release 4.0, July 2010 Licenses • Eclipse Public License v1.0 Third-Party Code CQ Third-Party Code License Use ICU4J (core and extended ICU4J License (X License, 1065 function) and ICU4J MIT Style) Replacement plug-in Version: 3.6 ICU4J License (X License, 1116 ICU4J Version: 3.4.5.20061213 MIT Style) 1153 JSch 0.1.31 Version: 0.1.31 New BSD license Apache Lucene Version: 1.9.1 243 (Core+Contrib Analyzers Apache License, 2.0 Analysis Src) 257 APT Version: 1 New BSD license Mozilla Public License 1.1 (MPL), MIT Style with No 262 Cairo Version: 1.0.2 Endorsement Clause, Historical Permissive Notice & Disclaimer ICU4J License (X License, 280 ICU4J Version: 3.4 MIT Style) ICU4J License (X License, 281 ICU4J Version: 3.4.3 MIT Style) 293 jsch Version: 0.1.28 New BSD license 308 PNG unload Version: 1 MIT license 1232 Apache Ant Version: 1.7.0 Apache License, 2.0 ICU4J and ICU4J Replacement ICU4J License (X License, 1367 Version: 3.6.1 MIT Style) Olsen time zone data Version: 1368 Public Domain 2007e Work derived from IJG JPEG 1596 IJG License Version: Release 6b,337 unmodified 1826 JSch 0.1.35 New BSD license source & binary ICU4J and ICU4J replacement MIT License with "no unmodified 1919 Version: 3.8.1 edorsement" clause source & binary unmodified 2014 jsch Version: 0.1.37 New BSD license source & binary XHTML DTDs Version: unmodified 2044 W3C Document License Versions 1.0 and 1.1 (PB CQ331) source org.apache.ant Version: 1.6.5 2404 (ATO CQ1013) (using Orbit Apache License, 2.0 CQ2209) org.apache.lucene Version: 1.4.3 2405 (Core Source Only) (ATO Apache License, 2.0 CQ1014) (using Orbit CQ2210) Junit Version: 3.8.2 (ATO 2406 Common Public License 1.0 CQ299) (using Orbit CQ2206) Historical support for Java SSH modified 2410 Applet + Blowfish Version - v.
    [Show full text]
  • The GNOME Desktop Environment
    The GNOME desktop environment Miguel de Icaza ([email protected]) Instituto de Ciencias Nucleares, UNAM Elliot Lee ([email protected]) Federico Mena ([email protected]) Instituto de Ciencias Nucleares, UNAM Tom Tromey ([email protected]) April 27, 1998 Abstract We present an overview of the free GNU Network Object Model Environment (GNOME). GNOME is a suite of X11 GUI applications that provides joy to users and hackers alike. It has been designed for extensibility and automation by using CORBA and scripting languages throughout the code. GNOME is licensed under the terms of the GNU GPL and the GNU LGPL and has been developed on the Internet by a loosely-coupled team of programmers. 1 Motivation Free operating systems1 are excellent at providing server-class services, and so are often the ideal choice for a server machine. However, the lack of a consistent user interface and of consumer-targeted applications has prevented free operating systems from reaching the vast majority of users — the desktop users. As such, the benefits of free software have only been enjoyed by the technically savvy computer user community. Most users are still locked into proprietary solutions for their desktop environments. By using GNOME, free operating systems will have a complete, user-friendly desktop which will provide users with powerful and easy-to-use graphical applications. Many people have suggested that the cause for the lack of free user-oriented appli- cations is that these do not provide enough excitement to hackers, as opposed to system- level programming. Since most of the GNOME code had to be written by hackers, we kept them happy: the magic recipe here is to design GNOME around an adrenaline response by trying to use exciting models and ideas in the applications.
    [Show full text]
  • A Highly Interactive Expert System for Outside Plant Engineering
    From: IAAI-93 Proceedings. Copyright © 1993, AAAI (www.aaai.org). All rights reserved. OPERA: A Highly Interactive Expert System for Outside Plant Engineering Gary Lazarus, Lien ‘Ihn and Marty Baade Expert Systems Laboratory NYNEX Science & Technology 500 Westchester Avenue White Plains, NY 10604 [email protected] Abstract system that contains more engineering expertise than OPERA is an expert system developed at the Expert any single engineer in the telephone companies. Systems Laboratory at NYNEX Science & Technology to As is the case in most high technology fields, assist outside plant telecommunications engineers in the outside plant engineers routinely see new products, or planning and implementation of sophisticated electronic refinements and enhancements to existing ones. The equipment. The engineer communicates with the system via underlying first order principles of engineering are intelligent documents that are schematic in their design and complex and not necessarily fully understood by all dynamic in their operation to facilitate the conveyance of necessary and sufficient information. Expertise from the top engineers charged with the responsibility of turning up experts in the company was culled and built into the system working systems. Engineers who immerse themselves in to create an expert system that surpasses the engineering the latest technology can perform very well. But, the knowledge of any single engineer in the company. The effort required to maintain that ability is significant. domain and project objectives are discussed, the system OPERA (Outside Plant Engineering and Resource architecture and development, testing, deployment and Administration), therefore, must provide a reasoning maintenance issues are presented and the use of artificial mechanism that emulates the best engineers and be intelligence techniques is justified.
    [Show full text]
  • Eagle: Tcl Implementation in C
    Eagle: Tcl Implementation in C# Joe Mistachkin <[email protected]> 1. Abstract Eagle [1], Extensible Adaptable Generalized Logic Engine, is an implementation of the Tcl [2] scripting language for the Microsoft Common Language Runtime (CLR) [3]. It is designed to be a universal scripting solution for any CLR based language, and is written completely in C# [4]. Su- perficially, it is similar to Jacl [5], but it was written from scratch based on the design and imple- mentation of Tcl 8.4 [6]. It provides most of the functionality of the Tcl 8.4 interpreter while bor- rowing selected features from Tcl 8.5 [7] and the upcoming Tcl 8.6 [8] in addition to adding en- tirely new features. This paper explains how Eagle adds value to both Tcl/Tk and CLR-based applications and how it differs from other “dynamic languages” hosted by the CLR and its cousin, the Microsoft Dy- namic Language Runtime (DLR) [9]. It then describes how to use, integrate with, and extend Ea- gle effectively. It also covers some important implementation details and the overall design phi- losophy behind them. 2. Introduction This paper presents Eagle, which is an open-source [10] implementation of Tcl for the Microsoft CLR written entirely in C#. The goal of this project was to create a dynamic scripting language that could be used to automate any host application running on the CLR. 3. Rationale and Motivation Tcl makes it relatively easy to script applications written in C [11] and/or C++ [12] and so can also script applications written in many other languages (e.g.
    [Show full text]
  • PHP Beyond the Web Shell Scripts, Desktop Software, System Daemons and More
    PHP Beyond the web Shell scripts, desktop software, system daemons and more Rob Aley This book is for sale at http://leanpub.com/php This version was published on 2013-11-25 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do. ©2012 - 2013 Rob Aley Tweet This Book! Please help Rob Aley by spreading the word about this book on Twitter! The suggested hashtag for this book is #phpbeyondtheweb. Find out what other people are saying about the book by clicking on this link to search for this hashtag on Twitter: https://twitter.com/search?q=#phpbeyondtheweb Contents Welcome ............................................ i About the author ...................................... i Acknowledgements ..................................... ii 1 Introduction ........................................ 1 1.1 “Use PHP? We’re not building a website, you know!”. ............... 1 1.2 Are you new to PHP? ................................. 2 1.3 Reader prerequisites. Or, what this book isn’t .................... 3 1.4 An important note for Windows and Mac users ................... 3 1.5 About the sample code ................................ 4 1.6 External resources ................................... 4 1.7 Book formats/versions available, and access to updates ............... 5 1.8 English. The Real English. .............................. 5 2 Getting away from the Web - the basics ......................... 6 2.1 PHP without a web server .............................. 6 2.2 PHP versions - what’s yours? ............................. 7 2.3 A few good reasons NOT to do it in PHP ...................... 8 2.4 Thinking about security ...............................
    [Show full text]
  • Testing X/Motif Applications
    TTeessttiinngg XX//MMoottiiff AApppplliiccaattiioonnss Achieving Quality Goals Through Automated GUI Testing Integrated Computer Solutions Incorporated The User Interface Company™ Phone: 617.621.0060 Email: [email protected] www.ics.com Automated Testing of X-Window Applications Choosing the Ideal Tool for Automated GUI Testing Table of Contents Overview............................................................................................................................. 3 The importance of GUI testing ........................................................................................... 3 Exploratory testing.......................................................................................................... 3 Regression testing ........................................................................................................... 3 Boundary testing ............................................................................................................. 4 Stress testing ................................................................................................................... 4 GUI Testing Tools .............................................................................................................. 4 Developing initial GUI tests ............................................................................................... 5 Using a GUI test tool during exploration............................................................................ 6 Basic scripting....................................................................................................................
    [Show full text]
  • Preview Tcl-Tk Tutorial (PDF Version)
    Tcl/Tk About the Tutorial Tcl is a general purpose multi-paradigm system programming language. It is a scripting language that aims at providing the ability for applications to communicate with each other. On the other hand, Tk is a cross platform widget toolkit used for building GUI in many languages. This tutorial covers various topics ranging from the basics of the Tcl/ Tk to its scope in various applications. Audience This tutorial is designed for all those individuals who are looking for a starting point of learning Tcl/ Tk. Therefore, we cover all those topics that are required for a beginner and an advanced user. Prerequisites Before proceeding with this tutorial, it is advisable for you to understand the basic concepts of computer programming. This tutorial is self-contained and you will be able to learn various concepts of Tcl/Tk even if you are a beginner. You just need to have a basic understanding of working with a simple text editor and command line. Disclaimer & Copyright Copyright 2015 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute, or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt.
    [Show full text]
  • Python and Epics: Channel Access Interface to Python
    Python and Epics: Channel Access Interface to Python Matthew Newville Consortium for Advanced Radiation Sciences University of Chicago October 12, 2010 http://cars9.uchicago.edu/software/python/pyepics3/ Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 Why Python? The Standard Answers Clean Syntax Easy to learn, remember, and read High Level Language No pointers, dynamic memory, automatic memory Cross Platform code portable to Unix, Windows, Mac. Object Oriented full object model, name spaces. Also: procedural! Extensible with C, C++, Fortran, Java, .NET Many Libraries GUIs, Databases, Web, Image Processing, Array math Free Both senses of the word. No, really: completely free. Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 Why Python? The Real Answer Scientists use Python. Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 All of these tools use the C implementation of Python. NOT Jython (Python in Java) or IronPython (Python in .NET): I am not talking about Jython. Why Do Scientists Use Python? Python is great. The tools are even better: numpy Fast arrays. matplotlib Excellent Plotting library scipy Numerical Algorithms (FFT, lapack, fitting, . ) f2py Wrapping Fortran for Python sage Symbolic math (ala Maple, Mathematica) GUI Choices Tk, wxWidgets, Qt, . Free Python is Free. All these tools are Free (BSD). Matthew Newville (CARS, Univ Chicago) Epics and Python October 12, 2010 Why Do Scientists Use Python? Python is great. The tools are even better: numpy Fast arrays. matplotlib Excellent Plotting library scipy Numerical Algorithms (FFT, lapack, fitting, . ) f2py Wrapping Fortran for Python sage Symbolic math (ala Maple, Mathematica) GUI Choices Tk, wxWidgets, Qt, .
    [Show full text]
  • Decwindows Motif for Openvms Installation Guide
    VSI OpenVMS DECwindows Motif for OpenVMS Installation Guide Document Number: DO-DDWINS-01A Publication Date: October 2019 Revision Update Information: This is a new manual. Operating System and Version: VSI OpenVMS Integrity Version 8.4-1H1 VSI OpenVMS Alpha Version 8.4-2L1 Software Version: DECwindows Motif for OpenVMS Version 1.7F VMS Software, Inc., (VSI) Bolton, Massachusetts, USA DECwindows Motif for OpenVMS Installation Guide Copyright © 2019 VMS Software, Inc. (VSI), Bolton, Massachusetts, USA Legal Notice Confidential computer software. Valid license from VSI required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice. The only warranties for VSI products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. VSI shall not be liable for technical or editorial errors or omissions contained herein. HPE, HPE Integrity, HPE Alpha, and HPE Proliant are trademarks or registered trademarks of Hewlett Packard Enterprise. The VSI OpenVMS documentation set is available on DVD. ii DECwindows Motif for OpenVMS Installation Guide Preface ....................................................................................................................................
    [Show full text]
  • RAND Suicide Prevention Program Evaluation TOOLKIT
    CHILDREN AND FAMILIES The RAND Corporation is a nonprofit institution that helps improve policy and EDUCATION AND THE ARTS decisionmaking through research and analysis. ENERGY AND ENVIRONMENT HEALTH AND HEALTH CARE This electronic document was made available from www.rand.org as a public service INFRASTRUCTURE AND of the RAND Corporation. TRANSPORTATION INTERNATIONAL AFFAIRS LAW AND BUSINESS Skip all front matter: Jump to Page 16 NATIONAL SECURITY POPULATION AND AGING PUBLIC SAFETY Support RAND SCIENCE AND TECHNOLOGY Purchase this document TERRORISM AND Browse Reports & Bookstore HOMELAND SECURITY Make a charitable contribution For More Information Visit RAND at www.rand.org Explore the RAND National Defense Research Institute View document details Limited Electronic Distribution Rights This document and trademark(s) contained herein are protected by law as indicated in a notice appearing later in this work. This electronic representation of RAND intellectual property is provided for non- commercial use only. Unauthorized posting of RAND electronic documents to a non-RAND website is prohibited. RAND electronic documents are protected under copyright law. Permission is required from RAND to reproduce, or reuse in another form, any of our research documents for commercial use. For information on reprint and linking permissions, please see RAND Permissions. This report is part of the RAND Corporation tool series. RAND tools may include models, databases, calculators, computer code, GIS mapping tools, practitioner guide- lines, web applications, and various toolkits. All RAND tools undergo rigorous peer review to ensure both high data standards and appropriate methodology in keeping with RAND’s commitment to quality and objectivity. RAND Suicide Prevention Program Evaluation TOOLKIT Joie D.
    [Show full text]