Chapter 13 GUI Programming

Total Page:16

File Type:pdf, Size:1020Kb

Chapter 13 GUI Programming Chapter 13 GUI Programming COSC 1436 Summer, 2018 July 19, 2018 Dr. Zhang Graphical User Interfaces • What is a GUI • –A graphical user interface allows the user to interact with the operating system and other programs using graphical elements such as icons, buttons, and dialog boxes. • Event-Driven • –GUI program must respond to the actions of the user. The user causes events to take place, such as the clicking of a button, and the program must respond to the events. • Using the tkinter Module The tkinter stands for “TK interface” Allows you to create simple GUI programs. Use import tkinter sentence Tkinter • The only GUI packaged with Python itself • Based on Tcl/Tk. Popular open-source scripting language/GUI widget set developed by John Ousterhout (90s) • Tk used in a wide variety of other languages (Perl, Ruby, PHP, etc.) • Cross-platform (Unix/Windows/MacOS) • It's small (~25 basic widgets) • http://effbot.org/tkinterbook/ Basic tkinter Widgets a component of an interface Typical steps in using Tkinter • You create and configure widgets (labels, buttons, sliders, etc.) • You pack them (geometry) • You implement functions that respond to various GUI events (event handling) • You run an event loop • Code example: SimpleGUI.py The Big Picture • A GUI lives in at least one graphical window • Here it is.... an empty window (no widgets) • This window is known as the "root" window • Usually only one root window per application • Code Example: empty_window.py Root(Main) Window • To create a new root window: • Import tkinter main_window=tkinter.Tk() • To start running the GUI, start its loop main_window.mainloop() • mainloop() function runs like an infinite loop until you close the main window. • This isn't very exciting. Just a blank window Widgets Widget Configuration Widget Events Widget State • Example: Button button_demo.py • Example: Checkbox # Create IntVar objects to use with the Checkbuttons. cb_var1 = tkinter.IntVar() # Set the intVar objects to 0. cb_var1.set(0) cb1 = tkinter.Checkbutton(main_window, \ text=‘Debug mode', variable=cb_var1) cb1. get() ## get current state Code Example: checkbutton_demo.py Widget State • Example: label • self.avg = tkinter.StringVar() # To update avg_label • self.avg_label = tkinter.Label(self.avg_frame, \ • textvariable=self.avg) self.average = (self.test1 + self.test2 + \ self.test3) / 3.0 # Update the avg_label widget by storing # the value of self.average in the StringVar # object referenced by avg. self.avg.set(self.average) Widgets as Building Blocks Packing • Widgets have to be placed somewhere within a window (geometry) • The pack() method does this • By default, pack places a widget centered at the top of a window Packing • widget.pack( pack_options ) Here is the list of possible options − • expand: When set to true, widget expands to fill any space not otherwise used in widget's parent. • fill: Determines whether widget fills any extra space allocated to it by the packer, or keeps its own minimal dimensions: NONE (default), X (fill only horizontally), Y (fill only vertically), or BOTH (fill both horizontally and vertically). • side: Determines which side of the parent widget packs against: TOP (default), BOTTOM, LEFT, or RIGHT. Choosing Sides Anchoring Multiple Widgets • More than one widget can be packed self.label1 = tkinter.Label(self.top_frame, \ text='Winken') self.label2 = tkinter.Label(self.top_frame, \ text='Blinken') self.label1.pack(side='top') self.label2.pack(side=‘left') Frames • Frames are like a sub-window • A space to hold widgets • Used to group widgets together self.top_frame = tkinter.Frame(self.main_window) self.bottom_frame = tkinter.Frame(self.main_window) # put lable widgets on the top_frame self.label1 = tkinter.Label(self.top_frame, \ text='Winken') self.label2 = tkinter.Label(self.top_frame, \ text='Blinken') self.label3 = tkinter.Label(self.top_frame, \ text='Nod') Using Frames • Typically used to subdivide a window into logical components • Widgets are then placed into each frame • Frame is used as the "parent" window • Code example: frame_demo.py Frame Example Grid Geometry Manager • The grid manager is the most flexible of the geometry managers in Tkinter. If you don’t want to learn how and when to use all three managers, you should at least make sure to learn this one. • The grid manager is especially convenient to use when designing dialog boxes. If you’re using the packer for that purpose today, you’ll be surprised how much easier it is to use the grid manager instead. Instead of using lots of extra frames to get the packing to work, you can in most cases simply pour all the widgets into a single container widget, and use the grid manager to get them all where you want them. (I tend to use two containers; one for the dialog body, and one for the button box at the bottom.) Grid Geometry Manager • Using the grid manager is easy. Just create the widgets, and use the grid method to tell the manager in which row and column to place them. You don’t have to specify the size of the grid beforehand; the manager automatically determines that from the widgets in it. Label(master, text="First").grid(row=0) Label(master, text="Second").grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) Standard Dialogs • tkinter.messagebox.showinfo("FYI","I am about to destroy your computer") Entry Dialogs • Enter string, integers, floats self.kilo_entry = tkinter.Entry(self.top_frame, \ width=10) Variable Classes • Some widgets (like text entry widgets, radio buttons ,checkbutton and so on) can be connected directly to application variables by using special options: variable, textvariable, onvalue, offvalue, and value. This connection works both ways: • if the variable changes for any reason, the widget it's connected to will be updated to reflect the new value. These Tkinter control variables are used like regular Python variables to keep certain values. It's not possible to hand over a regular Python variable to a widget through a variable or textvariable option. The only kinds of variables for which this works are variables that are subclassed from a class called Variable, defined in the Tkinter module. Variable Classes • They are declared like this: • x = StringVar() # Holds a string; default value "" • x = IntVar() # Holds an integer; default value 0 • x = DoubleVar() # Holds a float; default value 0.0 • x = BooleanVar() # Holds a boolean, returns 0 for False and 1 for True • To read the current value of such a variable, call the method get(). The value of such a variable can be changed with the set() method. Lab Exercises • http://www.python- course.eu/python_tkinter.php.
Recommended publications
  • Windows 7 Operating Guide
    Welcome to Windows 7 1 1 You told us what you wanted. We listened. This Windows® 7 Product Guide highlights the new and improved features that will help deliver the one thing you said you wanted the most: Your PC, simplified. 3 3 Contents INTRODUCTION TO WINDOWS 7 6 DESIGNING WINDOWS 7 8 Market Trends that Inspired Windows 7 9 WINDOWS 7 EDITIONS 10 Windows 7 Starter 11 Windows 7 Home Basic 11 Windows 7 Home Premium 12 Windows 7 Professional 12 Windows 7 Enterprise / Windows 7 Ultimate 13 Windows Anytime Upgrade 14 Microsoft Desktop Optimization Pack 14 Windows 7 Editions Comparison 15 GETTING STARTED WITH WINDOWS 7 16 Upgrading a PC to Windows 7 16 WHAT’S NEW IN WINDOWS 7 20 Top Features for You 20 Top Features for IT Professionals 22 Application and Device Compatibility 23 WINDOWS 7 FOR YOU 24 WINDOWS 7 FOR YOU: SIMPLIFIES EVERYDAY TASKS 28 Simple to Navigate 28 Easier to Find Things 35 Easy to Browse the Web 38 Easy to Connect PCs and Manage Devices 41 Easy to Communicate and Share 47 WINDOWS 7 FOR YOU: WORKS THE WAY YOU WANT 50 Speed, Reliability, and Responsiveness 50 More Secure 55 Compatible with You 62 Better Troubleshooting and Problem Solving 66 WINDOWS 7 FOR YOU: MAKES NEW THINGS POSSIBLE 70 Media the Way You Want It 70 Work Anywhere 81 New Ways to Engage 84 INTRODUCTION TO WINDOWS 7 6 WINDOWS 7 FOR IT PROFESSIONALS 88 DESIGNING WINDOWS 7 8 WINDOWS 7 FOR IT PROFESSIONALS: Market Trends that Inspired Windows 7 9 MAKE PEOPLE PRODUCTIVE ANYWHERE 92 WINDOWS 7 EDITIONS 10 Remove Barriers to Information 92 Windows 7 Starter 11 Access
    [Show full text]
  • The Desktop (Overview)
    The desktop (overview) The desktop is the main screen area that you see after you turn on your computer and log on to Windows. Like the top of an actual desk, it serves as a surface for your work. When you open programs or folders, they appear on the desktop. You can also put things on the desktop, such as files and folders, and arrange them however you want. The desktop is sometimes defined more broadly to include the taskbar and Windows Sidebar. The taskbar sits at the bottom of your screen. It shows you which programs are running and allows you to switch between them. It also contains the Start button , which you can use to access programs, folders, and computer settings. On the side of the screen, Sidebar contains small programs called gadgets. The desktop, taskbar, and Sidebar Where did my desktop go? Because programs run on top of the desktop, the desktop itself is often partially or completely hidden. But it's still there, underneath everything. To see the whole desktop without closing any of your open programs or windows, click the Show Desktop button on the taskbar. The desktop is revealed. Click the icon again to restore all of your windows to the way they were. Desktop Training Session Handout Page 1 http://ict.maxwell.syr.edu/vista/ Working with desktop icons Icons are small pictures that represent files, folders, programs, and other items. When you first start Windows, you'll see at least one icon on your desktop: the Recycle Bin (more on that later).
    [Show full text]
  • Spot-Tracking Lens: a Zoomable User Interface for Animated Bubble Charts
    Spot-Tracking Lens: A Zoomable User Interface for Animated Bubble Charts Yueqi Hu, Tom Polk, Jing Yang ∗ Ye Zhao y Shixia Liu z University of North Carolina at Charlotte Kent State University Tshinghua University Figure 1: A screenshot of the spot-tracking lens. The lens is following Belarus in the year 1995. Egypt, Syria, and Tunisia are automatically labeled since they move faster than Belarus. Ukraine and Russia are tracked. They are visible even when they go out of the spotlight. The color coding of countries is the same as in Gapminder[1], in which countries from the same geographic region share the same color. The world map on the top right corner provides a legend of the colors. ABSTRACT thus see more details. Zooming brings many benefits to visualiza- Zoomable user interfaces are widely used in static visualizations tion: it allows users to examine the context of an interesting object and have many benefits. However, they are not well supported in by zooming in the area where the object resides; labels overcrowded animated visualizations due to problems such as change blindness in the original view can be displayed without overlaps after zoom- and information overload. We propose the spot-tracking lens, a new ing in; it allows users to focus on a local area and thus reduce their zoomable user interface for animated bubble charts, to tackle these cognitive load. problems. It couples zooming with automatic panning and provides In spite of these benefits, zooming is not as well supported in an- a rich set of auxiliary techniques to enhance its effectiveness.
    [Show full text]
  • Tracker Helps You Mark the Steps but Does Not Limit Your Control Over Them
    Tracker 6 Help Tracker is a free video analysis and modeling tool from Open Source Physics (OSP). Features include manual and automated object tracking with position, velocity and acceleration overlays and data, video filters, line profiles for analysis of spectra and interference patterns, and dynamic particle models for direct comparison with real-world videos. It is designed to be used in physics education but is also widely used in many other fields. To start using Tracker, see getting started. Getting Started When you first open Tracker it appears as shown below. Here's how to start analyzing a video: 1. Open a video or tracker file. 2. Identify the frames ("video clip") you wish to analyze. 3. Calibrate the video scale. 4. Set the reference frame origin and angle. 5. Track objects of interest with the mouse. 6. Plot and analyze the tracks. 7. Save your work in a tracker file. 8. Export track data to a spreadsheet. 9. Print, save or copy/paste images for reports. Note that the order of the buttons on the toolbar mirrors the steps used to analyze a video. For more information about Tracker's user interface, including user customization, see user interface. 1. Open a video or tracker file To open a local video, tracker tab (.trk), or tracker project (.trz) file, click the Open button or File|Open File menu item and select the file with the chooser, or drag and drop the file onto Tracker. You can also open still and animated image files (.jpg, .gif, .png), numbered sequences of image files, and images pasted from the clipboard.
    [Show full text]
  • Digital Photo Frame User's Manual
    PO_11960_XSU_00810B_Manual_en-gb Lang: English FI No.: 11960 Proof: 01 Date: 08/09/08 Page: 1 Digital Photo Frame User’s Manual Questions? Need some help? If you still have questions, call our Or visit help line found on the www.polaroid.com/support This manual should help you insert with this icon: understand your new product. PO_11960_XSU_00810B_Manual_en-gb Lang: English FI No.: 11960 Proof: 01 Date: 08/09/08 Page: 2 Controls and Basic Instructions CONGRATULATIONS on your purchase of a Polaroid Digital Photo Frame. Please read carefully and follow all instructions in the manual and those marked on the product before fi rst use. Failing to follow these warnings could result in personal injury or damage to the device. Also, remember to keep this User’s Manual in a convenient location for future reference. Important: Save the original box and all packing material for future shipping needs. Controls AUTO: Press it means exit.Hold for 2 seconds to start a Slide show. MENU: Press to enter or select. Hold for 2 seconds to enter the SETUP menu. UP ARROW Press to move up or select Previous. DOWN ARROW Press to move down or select Next. POWER: Turns power on or off. Installing a Flash Media Card USB Port 1. Find the slot that fi ts your fl ash media card. 2. Insert the card in the correct slot. 3. To remove the card, simply pull it out from the card slot. MS/SD/MMC Card Power Note: Do not remove any memory card from its slot while pictures are playing.
    [Show full text]
  • Maplex Tutorial
    Maplex Tutorial Copyright © 1995-2010 Esri All rights reserved. Maplex Tutorial Table of Contents Introduction to the Maplex tutorial . 3 Exercise 1: Enabling Maplex for ArcGIS and adding the Labeling toolbar . 4 Exercise 2: Labeling the parcels with their serial and parcel numbers . 9 Exercise 3: Labeling the parcel boundaries with their length . 17 Exercise 4: Labeling the streets with their names . 24 Copyright © 1995-2010 Esri. All rights reserved. 2 Maplex Tutorial Introduction to the Maplex tutorial Introducing the Maplex tutorial A good way to learn how to use ESRI's Maplex for ArcGIS is to work through the process of labeling a map. This tutorial introduces you to some labeling techniques in the context of mapping land parcels and streets. In this tutorial, you will use Maplex for ArcGIS to do the following: • Improve labels for parcel features by stacking and reducing the size of the labels. • Place labels for parcel boundary features by aligning them to their features and reducing their size. • Improve label placements for street features by applying a labeling style and an abbreviation dictionary. Tutorial data The exercises in this tutorial use the tutorial data distributed with Maplex for ArcGIS. The default installation location of the data is C:\ArcGIS\ArcTutor\Maplex. In this tutorial • Exercise 1: Enabling Maplex for ArcGIS and adding the Labeling toolbar • Exercise 2: Labeling the parcels with their serial and parcel numbers • Exercise 3: Labeling the parcel boundaries with their length • Exercise 4: Labeling the streets with their names Copyright © 1995-2010 Esri. All rights reserved. 3 Maplex Tutorial Exercise 1: Enabling Maplex for ArcGIS and adding the Labeling toolbar Imagine that you work for a small city and you need to make a map for the Complexity: Beginner assessor.
    [Show full text]
  • Supply Chain Packaging Guide
    Secondary Packaging Supply Chain Standards July 7, 2021 Business Confidential | ©2021 Walmart Stores, Inc. 177 // 338 Secondary Packaging Supply Chain Standards - Update Summary These standards have included multiple clarifications of what is required and what is NOT ALLOWED. These changes have been updated throughout the published standards to provide clarity to suppliers. The pages have been reorganized to provide a better flow. PAGE 2021 UPDATES Changes to Supply Chain Standards 185 SQEP Phase 2 and Phase 3 Defect Description/Definitions Added 202 General Case Markings Updated for Dates, Unprocessed Meats, and Cylindrical Items 210-213 Updated Pallet Standards 218 Update "Palletized Shipments" to "Unitized Shipments" 227 Add Inbound Appointment Scheduling Standard 228 Update TV Test Standards 235-237 Add Direct Store Delivery (DSD) aka Direct To Store (DTS) Standards 239 Update SIOC Standards 240 Add eCommerce Product Specific Requirement Standards 241-244 Add Drop Ship Vendor (DSV) Standards 268 Add Jewelry Distribution Center Standards 269-271 Add Optical Distribution Center Standards 275 Add Goods Not For Resale (GNFR) Standards 277-278 Update Meat/Poultry/Seafood Case and Pallet Label Standards 284 Add HACCP Pallet Placard for GCC Shipments 311-312 Add Frozen Seafood Carton Marking Requirements Appendix D Update Receiving Pulp Temperature Range Business Confidential | © 2021 Walmart Stores, Inc. The examples shown are for reference only. Supply Chain Standards 178 // 338 Table of Contents Supply Chain Stretch Wrap . 219 Produce Shipments . 280 Contact Information . 179 Trailer Loading . 220 Automated Grocery Handling . 281 Walmart Retail Link Resources . 180 Trailer Measurements. 221 Grocery Import Distribution Center (GIDC) . 282 Walmart Distribution Center Overview .
    [Show full text]
  • Getting Started with Arcgis: Labeling Features in Arcmap
    Getting Started with ArcGIS Labeling Features in ArcMap By Monica Pratt, ArcUser Editor A label is any text that identifies a feature on a map and helps the map reader interpret a map. In ArcMap, you can use labeling or annota- tion to identify features. The choice of annota- tion or labeling depends on how much control you need over text display and how you would like to store text in ArcMap. See “Labeling Options in ArcMap,” another article in this issue, for a discussion of the pros and cons of each method for identifying features. If you are using labeling, the features you will label will depend on the type of data being displayed and how the map will be used. These considerations will help you decide which labeling method to use in a given sit- uation. You can use the Text tool to label a few features, or you can take advantage of the functionality built into ArcMap to label fea- tures—interactively or dynamically—based on attribute data associated with a layer. Labels can be added without referencing an attribute table by using the Text tool. One by One 7. To adjust the position of a label, place Although a value stored in an attribute table the cursor over the label, hold down the field typically supplies the information for a left mouse key, and drag the label to a new label (e.g., the name Angola could be a value location. for a field that contains the names of coun- tries), labels can be added without referencing Label Specific Features an attribute table by using the Text tool.
    [Show full text]
  • 1 Lecture 15: Animation
    Lecture 15: Animation Fall 2005 6.831 UI Design and Implementation 1 1 UI Hall of Fame or Shame? Suggested by Ryan Damico Fall 2005 6.831 UI Design and Implementation 2 Today’s candidate for the Hall of Shame is this entry form from the 1800Flowers web site. The purpose of the form is to enter a message for a greeting card that will accompany a delivered flower arrangement. Let’s do a little heuristic evaluation of this form: Major: The 210 character limit is well justified, but hard for a user to check. Suggest a dynamic %-done bar showing how much of the quota you’ve used. (error prevention, flexibility & efficiency) Major: special symbols like & is vague. What about asterisk and hyphen – are those special too? What am I allowed to use, exactly? Suggest highlighting illegal characters, or beeping and not allowing them to be inserted. (error prevention) Cosmetic: the underscores in the Greeting Type drop-down menu look like technical identifiers, and some even look mispelled because they’ve omitted other punctuation. Bosss_Day? (Heuristic: match the real world) Major: how does Greeting Type affect card? (visibility, help & documentation) Cosmetic: the To:, Message,: and From: captions are not likely to align with what the user types (aesthetic & minimalist design) 2 Today’s Topics • Design principles • Frame animation • Palette animation • Property animation • Pacing & path Fall 2005 6.831 UI Design and Implementation 3 Today we’re going to talk about using animation in graphical user interfaces. Some might say, based on bad experiences with the Web, that animation has no place in a usable interface.
    [Show full text]
  • Prof-UIS Frame Features White Paper
    Prof-UIS Frame Features White Paper Published: January 2005 FOSS Software, Inc. 151 Main St., Suite 3 Salem, NH 03079 Phones: (603) 894 6425, (603) 894 6427 Fax: (603) 251 0077 E-mail: [email protected] Technical Support Forum: http://prof-uis.com/forum.aspx E-mail: [email protected] Contents Introduction.............................................................................................................................................3 Why choose us?.....................................................................................................................................4 Set of Samples.....................................................................................................................................4 CHM Help.............................................................................................................................................4 Technical Support ................................................................................................................................4 Royalty Free Licensing.........................................................................................................................4 Excellent Value ....................................................................................................................................4 Prof-UIS Feature List..............................................................................................................................5 GUI themes......................................................................................................................................5
    [Show full text]
  • Link to Website Fails to Open Inside Blackboard- Page Never Loads Issue Description Recommended Action
    Link to Website Fails to Open Inside Blackboard- SUPPORT eLearning Page Never Loads Known Issue Issue Description Normally, when a link to an outside website is clicked and loads inside Blackboard, a gray bar will appear at the top of the frame, stating that “The Content Below is Outside of the Blackboard Learn Environment”. However, non-secured websites (i.e. url addresses beginning with HTTP://) or sites containing scripted or multimedia content may have trouble loading into frames within Blackboard. The gray notice bar will appear, but the webpage will never load. Also, in Internet Explorer an additional message may appear, stating “The Content Cannot Be Displayed in a Frame”. Recommended Action Easy Fix – Open Link in New Window or Tab This can be accomplished by right-clicking your mouse on the link and choosing “Open Link in New Window” or “Open Link in New Tab” from the context menu that appears. The web page will open in a new window and be accessible. RIGHT-CLICK your mouse cursor on the link; Choose Open in New Window Updated 9/11/2013 MH Best Practice Fix – Create or Edit the Link to Open in New Window Automatically Links created through Blackboard’s Web link tool are easier to create and modify than links added to the text of a Blackboard Item. When creating or editing a link to your course, be sure to set the link to open in a new window. This will help ensure that the website is easily accessible in any browser going forwards. These instructions assume that you have EDIT MODE turned on in your course.
    [Show full text]
  • 01 Creation of HTML Pages with Frames, Links, Tables and Other Tags Date
    www.vidyarthiplus.com Ex. No. : 01 Creation of HTML pages with frames, links, tables and other tags Date : AIM: To create a simple webpage using HTML that includes all tags. ALGORITHM: 1. Write a HTML program in the notepad with the tags such as A. FRAMES With frames, you can display more than one HTML document in the same browser window. Each HTML document is called a frame, and each frame is independent of the others. The Frameset Tag The <frameset> tag defines how to divide the window into frames. The Frame Tag The <frame> tag defines what HTML document to put into each frame. Example: <frameset cols="25%, 75 %"> <frame src="frame_a.htm"> <frame src="frame_b.htm"> </frameset> Tags and their Description: <frameset> Defines a set of frames <frame> Defines a sub window (a frame) www.vidyarthiplus.com www.vidyarthiplus.com B. LINKS A hyperlink is a reference (an address) to a resource on the web. Example: <a href="http://www.w3schools.com/">Visit W3Schools!</a> The href Attribute The href attribute defines the link "address". The target Attribute The target attribute defines where the linked document will be opened. Tag and its Description: <a> Defines an anchor C. TABLES Tables are defined with the <table> tag. A table is divided into rows (with the <tr> tag), and each row is divided into data cells (with the <td> tag). The letters td stands for "table data," which is the content of a data cell. Example: <table border="1"> <tr> <td>Row 1, cell 1</td> <td>Row 1, cell 2</td> </tr> </table> Tags and their Description: <Table> Defines a table <th> Defines a table header <tr> Defines a table row <td> Defines a table cell 2.
    [Show full text]