Documentation Center

  • Trial Software
  • Product Updates

Design GUIDE GUIs for Cross-Platform Compatibility

Default System Font

By default, user interface controls (uicontrols) use the default font for the platform on which they are running. For example, when displaying your GUI on PCs, uicontrols use MS San Serif. When your GUI runs on a different platform, it uses that computer's default font. This provides a consistent look with respect to your GUI and other application GUIs.

If you have set the FontName property to a named font and want to return to the default value, you can set the property to the string default. This ensures that the software uses the system default at run-time.

You can use the Property Inspector to set this property:

As an alternative, use the set command to set the property in the GUI code file. For example, if there is a push button in your GUI and its handle is stored in the pushbutton1 field of the handles structure, then the statement

set(handles.pushbutton1,'FontName','default')

sets the FontName property to use the system default.

Specify a Fixed-Width Font

If you want to use a fixed-width font for a user interface control, set its FontName property to the string fixedwidth. This special identifier ensures that your GUI uses the standard fixed-width font for the target platform.

You can find the name of the fixed-width font that is used on a given platform by querying the root FixedWidthFontName property.

get(0,'FixedWidthFontName')

Use a Specific Font Name

You can specify an actual font name (such as Times or Courier) for the FontName property. However, doing so may cause your GUI to not look as you intended when run on a different computer. If the target computer does not have the specified font, it will substitute another font that may not look good in your GUI or may not be the standard font used for GUIs on that system. Also, different versions of the same named font may have different size requirements for a given set of characters.

Standard Background Color

The default component background color is the standard system background color on which the GUI is running. This color varies on different computer systems, e.g., the standard shade of gray on the PC differs from that on UNIX® system, and may not match the default GUI background color.

If you use the default component background color, you can use that same color as the background color for your GUI. This provides a consistent look with respect to your GUI and other application GUIs. To do this in GUIDE, check Options > Use system color scheme for background on the Layout Editor Tools menu.

    Note   This option is available only if you first select the Generate FIG-file and MATLAB File option.

The following figures illustrate the results with and without system color matching.

Cross-Platform Compatible Units

Cross-platform compatible GUIs should look correct on computers having different screen sizes and resolutions. Since the size of a pixel can vary on different computer displays, using the default figure Units of pixels does not produce a GUI that looks the same on all platforms.

For this reason, GUIDE defaults the Units property for the figure to characters.

System-Dependent Units

Character units are defined by characters from the default system font. The width of a character unit equals the width of the letter x in the system font. The height of a character unit is the distance between the baselines of two lines of text. Note that character units are not square.

Units and Resize Behavior

If you set your GUI's resize behavior from the GUI Options dialog box, GUIDE automatically sets the units for the GUI's components in a way that maintains the intended look and feel across platforms. To specify the resize behavior option, select Tools > GUI Options, and then specify Resize behavior by selecting Non-resizable, Proportional, or Other (Use ResizeFcn).

If you choose Non-resizable, GUIDE defaults the component units to characters. If you choose Proportional, it defaults the component units to normalized. In either case, these settings enable your GUI to automatically adjust the size and relative spacing of components as the GUI displays on different computers.

If you choose Other (Use ResizeFcn), GUIDE defaults the component units to characters. However, you must provide a ResizeFcn callback to customize the GUI's resize behavior.

    Note   GUIDE does not automatically adjust component units if you modify the figure's Resize property programmatically or in the Property Inspector.

At times, it may be convenient to use a more familiar unit of measure, e.g., inches or centimeters, when you are laying out the GUI. However, to preserve the look of your GUI on different computers, remember to change the figure Units property back to characters, and the components' Units properties to characters (nonresizable GUIs) or normalized (resizable GUIs) before you save the GUI.

Was this topic helpful?