Application

class pydm.PyDMApplication(ui_file=None, command_line_args=[], display_args=[], perfmon=False, hide_nav_bar=False, hide_menu_bar=False, hide_status_bar=False, read_only=False, macros=None, use_main_window=True, stylesheet_path=None, fullscreen=False)[source]

PyDMApplication handles loading PyDM display files, opening new windows, and most importantly, establishing and managing connections to channels via data plugins.

Parameters
  • ui_file (str, optional) – The file path to a PyDM display file (.ui or .py).

  • command_line_args (list, optional) – A list of strings representing arguments supplied at the command line. All arguments in this list are handled by QApplication, in addition to PyDMApplication.

  • display_args (list, optional) – A list of command line arguments that should be forwarded to the Display class. This is only useful if a Related Display Button is opening up a .py file with extra arguments specified, and probably isn’t something you will ever need to use when writing code that instantiates PyDMApplication.

  • perfmon (bool, optional) – Whether or not to enable performance monitoring using ‘psutil’. When enabled, CPU load information on a per-thread basis is periodically printed to the terminal.

  • hide_nav_bar (bool, optional) – Whether or not to display the navigation bar (forward/back/home buttons) when the main window is first displayed.

  • hide_menu_bar (bool, optional) – Whether or not to display the menu bar (File, View) when the main window is first displayed.

  • hide_status_bar (bool, optional) – Whether or not to display the status bar (general messages and errors) when the main window is first displayed.

  • read_only (bool, optional) – Whether or not to launch PyDM in a read-only state.

  • macros (dict, optional) – A dictionary of macro variables to be forwarded to the display class being loaded.

  • use_main_window (bool, optional) – If ui_file is note given, this parameter controls whether or not to create a PyDMMainWindow in the initialization (Default is True).

  • fullscreen (bool, optional) – Whether or not to launch PyDM in a full screen mode.

add_connection(channel)[source]

Add a new connection to a channel.

Parameters

channel (PyDMChannel) –

close_widget_connections(widget)[source]

Given a widget to start from, traverse the tree of child widgets, and try to close connections to any widgets with channels.

Parameters

widget (QWidget) –

establish_widget_connections(widget)[source]

Given a widget to start from, traverse the tree of child widgets, and try to establish connections to any widgets with channels.

Display subclasses which dynamically create widgets may need to use this method.

Parameters

widget (QWidget) –

eventFilter(self, QObject, QEvent) → bool[source]
exec_()[source]

Execute the QApplication.

get_CPU_usage()[source]

Prints total CPU usage (in percent), as well as per-thread usage, to the terminal.

get_path(ui_file)[source]

Gives you the path to ui_file relative to where you are running pydm from.

Many widgets handle file paths (related display, embedded display, and drawing image come to mind) and the standard is that they expect paths to be given relative to the .ui or .py file in which the widget lives. But, python and Qt want the file path relative to the directory you are running pydm from. This function does that translation.

Parameters

ui_file (str) –

Returns

Return type

str

make_main_window(stylesheet_path=None)[source]

Instantiate a new PyDMMainWindow, add it to the application’s list of windows. Typically, this function is only called as part of starting up a new process, because PyDMApplications only have one window per process.

make_window(ui_file, macros=None, command_line_args=None)[source]

Open the ui_file in the window.

Parameters
  • ui_file (str) – The path to a .ui or .py file to open in the new process.

  • macros (dict, optional) – A dictionary of macro variables to supply to the display file to be opened.

  • command_line_args (list, optional) – A list of command line arguments to pass to the new process. Typically, this argument is used by related display buttons to pass in extra arguments. It is probably rare that code you write needs to use this argument.

new_pydm_process(ui_file, macros=None, command_line_args=None)[source]

Spawn a new PyDM process and open the supplied file. Commands to open new windows in PyDM typically actually spawn an entirely new PyDM process. This keeps each window isolated, so that one window cannot slow down or crash another.

Parameters
  • ui_file (str) – The path to a .ui or .py file to open in the new process.

  • macros (dict, optional) – A dictionary of macro variables to supply to the display file to be opened.

  • command_line_args (list, optional) – A list of command line arguments to pass to the new process. Typically, this argument is used by related display buttons to pass in extra arguments. It is probably rare that code you write needs to use this argument.

new_window(ui_file, macros=None, command_line_args=None)[source]

Make a new window and open the supplied file. Currently, this method just calls new_pydm_process.

This is an internal method that typically will not be needed by users.

Parameters
  • ui_file (str) – The path to a .ui or .py file to open in the new process.

  • macros (dict, optional) – A dictionary of macro variables to supply to the display file to be opened.

  • command_line_args (list, optional) – A list of command line arguments to pass to the new process. Typically, this argument is used by related display buttons to pass in extra arguments. It is probably rare that code you write needs to use this argument.

open_file(ui_file, macros=None, command_line_args=None, defer_connections=False, **kwargs)[source]

Open a .ui or .py file, and return a widget from the loaded file. This method is the entry point for all opening of new displays, and manages handling macros and relative file paths when opening nested displays.

Parameters
  • ui_file (str) – The path to a .ui or .py file to open in the new process.

  • macros (dict, optional) – A dictionary of macro variables to supply to the display file to be opened.

  • command_line_args (list, optional) – A list of command line arguments to pass to the new process. Typically, this argument is used by related display buttons to pass in extra arguments. It is probably rare that code you write needs to use this argument.

Returns

Return type

QWidget

open_relative(ui_file, widget, macros=None, command_line_args=[], **kwargs)[source]

open_relative opens a ui file with a relative path. This is really only used by embedded displays.

plugin_for_channel(channel)[source]

Given a PyDMChannel object, determine the appropriate plugin to use.

Parameters

channel (PyDMChannel) –

Returns

Return type

PyDMPlugin

remove_connection(channel)[source]

Remove a connection to a channel.

Parameters

channel (PyDMChannel) –