schrodinger.ui.qt.periodictable module

A simple periodic table widget that allows the user to select a single element.

Example usage:

self.table_dialog = PeriodicTableDialog(self) self.table_dialog.exec() symbol = self.periodic_table_dlg.getSymbol()

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.ui.qt.periodictable.ElementButton(text, tip, colors)

Bases: PyQt6.QtWidgets.QToolButton

A toolbutton that is checkable (stays depressed) and is colored. the use of style sheets makes these buttons not only colored, but also square so that the Periodic Table looks like an actual clickable periodic table rather than a collection of rounded buttons.

__init__(text, tip, colors)

Create an ElementButton instance

Parameters
  • text (str) – The text of the button

  • tip (str) – The button tooltip

  • colors (tuple) – The button colors - a two item tuple (normal button color, color when depressed). Should be strings in a color format that Qt style sheets accept.

setPeriodicStyle(colors)

Set the color and style of the button. The use of a StyleSheet allows the button to be colored and square.

Parameters

colors (tuple) – The button colors - a two item tuple (normal button color, color when depressed). Should be strings in a color format that Qt style sheets accept.

class schrodinger.ui.qt.periodictable.PeriodicTableDialog(parent=None, default_element=6, max_element=118, title='Choose Element', dummy_name='')

Bases: schrodinger.ui.qt.swidgets.SDialog

A simple periodic table widget that allows the user to select a single element.

ELEMENTS = [('Hydrogen', 'H', 0, 0), ('Helium', 'He', 17, 0), ('Lithium', 'Li', 0, 1), ('Beryllium', 'Be', 1, 1), ('Boron', 'B', 12, 1), ('Carbon', 'C', 13, 1), ('Nitrogen', 'N', 14, 1), ('Oxygen', 'O', 15, 1), ('Fluorine', 'F', 16, 1), ('Neon', 'Ne', 17, 1), ('Sodium', 'Na', 0, 2), ('Magnesium', 'Mg', 1, 2), ('Aluminium', 'Al', 12, 2), ('Silicon', 'Si', 13, 2), ('Phosphorus', 'P', 14, 2), ('Sulphur', 'S', 15, 2), ('Chlorine', 'Cl', 16, 2), ('Argon', 'Ar', 17, 2), ('Potassium', 'K', 0, 3), ('Calcium', 'Ca', 1, 3), ('Scandium', 'Sc', 2, 3), ('Titanium', 'Ti', 3, 3), ('Vanadium', 'V', 4, 3), ('Chromium', 'Cr', 5, 3), ('Manganese', 'Mn', 6, 3), ('Iron', 'Fe', 7, 3), ('Cobalt', 'Co', 8, 3), ('Nickel', 'Ni', 9, 3), ('Copper', 'Cu', 10, 3), ('Zinc', 'Zn', 11, 3), ('Gallium', 'Ga', 12, 3), ('Germanium', 'Ge', 13, 3), ('Arsenic', 'As', 14, 3), ('Selenium', 'Se', 15, 3), ('Bromine', 'Br', 16, 3), ('Krypton', 'Kr', 17, 3), ('Rubidium', 'Rb', 0, 4), ('Strontium', 'Sr', 1, 4), ('Yttrium', 'Y', 2, 4), ('Zirconium', 'Zr', 3, 4), ('Niobium', 'Nb', 4, 4), ('Molybdenum', 'Mo', 5, 4), ('Technetium', 'Tc', 6, 4), ('Ruthenium', 'Ru', 7, 4), ('Rhodium', 'Rh', 8, 4), ('Palladium', 'Pd', 9, 4), ('Silver', 'Ag', 10, 4), ('Cadmium', 'Cd', 11, 4), ('Indium', 'In', 12, 4), ('Tin', 'Sn', 13, 4), ('Antimony', 'Sb', 14, 4), ('Tellurium', 'Te', 15, 4), ('Iodine', 'I', 16, 4), ('Xenon', 'Xe', 17, 4), ('Cesium', 'Cs', 0, 5), ('Barium', 'Ba', 1, 5), ('Lanthanum', 'La', 2, 5), ('Cerium', 'Ce', 3, 9), ('Praseodymium', 'Pr', 4, 9), ('Neodymium', 'Nd', 5, 9), ('Promethium', 'Pm', 6, 9), ('Samarium', 'Sm', 7, 9), ('Europium', 'Eu', 8, 9), ('Gadolinium', 'Gd', 9, 9), ('Terbium', 'Tb', 10, 9), ('Dysprosium', 'Dy', 11, 9), ('Holmium', 'Ho', 12, 9), ('Erbium', 'Er', 13, 9), ('Thulium', 'Tm', 14, 9), ('Ytterbium', 'Yb', 15, 9), ('Lutetium', 'Lu', 16, 9), ('Hafnium', 'Hf', 3, 5), ('Tantalum', 'Ta', 4, 5), ('Tungsten', 'W', 5, 5), ('Rhenium', 'Re', 6, 5), ('Osmium', 'Os', 7, 5), ('Iridium', 'Ir', 8, 5), ('Platinum', 'Pt', 9, 5), ('Gold', 'Au', 10, 5), ('Mercury', 'Hg', 11, 5), ('Thallium', 'Tl', 12, 5), ('Lead', 'Pb', 13, 5), ('Bismuth', 'Bi', 14, 5), ('Polonium', 'Po', 15, 5), ('Astatine', 'At', 16, 5), ('Radon', 'Rn', 17, 5), ('Francium', 'Fr', 0, 6), ('Radium', 'Ra', 1, 6), ('Actinium', 'Ac', 2, 6), ('Thorium', 'Th', 3, 10), ('Protactinium', 'Pa', 4, 10), ('Uranium', 'U', 5, 10), ('Neptunium', 'Np', 6, 10), ('Plutonium', 'Pu', 7, 10), ('Americium', 'Am', 8, 10), ('Curium', 'Cm', 9, 10), ('Berkelium', 'Bk', 10, 10), ('Californium', 'Cf', 11, 10), ('Einsteinium', 'Es', 12, 10), ('Fermium', 'Fm', 13, 10), ('Mendelevium', 'Md', 14, 10), ('Nobelium', 'No', 15, 10), ('Lawrencium', 'Lr', 16, 10), ('Rutherfordium', 'Rf', 3, 6), ('Dubnium', 'Db', 4, 6), ('Seaborgium', 'Sg', 5, 6), ('Bohrium', 'Bh', 6, 6), ('Hassium', 'Hs', 7, 6), ('Meitnerium', 'Mt', 8, 6), ('Darmstadtium', 'Ds', 9, 6), ('Roentgenium', 'Rg', 10, 6), ('Copernicium', 'Cn', 11, 6), ('Nihonium', 'Nh', 12, 6), ('Flerovium', 'Fl', 13, 6), ('Moscovium', 'Mc', 14, 6), ('Livermorium', 'Lv', 15, 6), ('Tennessine', 'Ts', 16, 6), ('Oganesson', 'Og', 17, 6)]
DU_SYMBOL = 'DU'
DU_ELEMENT = -2
DU_BUTTON_ID = 500
__init__(parent=None, default_element=6, max_element=118, title='Choose Element', dummy_name='')

Create a PeriodicTable instance

Parameters
  • parent (QWidget) – Dialog’s parent.

  • default_element (int) – Default selected element.

  • max_element (int) – Number of elements displayed in the widget.

  • title (str) – The Dialog window title

  • show_dummy – Dummy name, if showing of dummy element is desired

layOut()

Lay out the periodic table

buttonChecked(button_id)

Record the element that was just selected by the user

showEvent(event)

Reimplemented showEvent event. Checks self.current_button.

Parameters

event (QShowEvent) – Show event.

getElement()

Returns atomic number of a selected element.

Return type

int

Returns

Atomic number of a selected element.

getSymbol()

Returns symbol of a selected element.

Return type

str

Returns

Symbol of a selected element.

getButtonId()

Returns button ID of a selected element.

Return type

int

Returns

Button ID

class schrodinger.ui.qt.periodictable.PeriodicTableDialogSingleClick(parent=None, default_element=6, max_element=118, title='Choose Element')

Bases: schrodinger.ui.qt.periodictable.PeriodicTableDialog

This provides a version of the Periodic Table widget that doesn’t have OK/Cancel buttons, and will emit a signal and close itself when an element is toggled.

elementSelected

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

__init__(parent=None, default_element=6, max_element=118, title='Choose Element')

Create a PeriodicTable instance

Parameters
  • parent (QWidget) – Dialog’s parent.

  • default_element (int) – Default selected element.

  • max_element (int) – Number of elements displayed in the widget.

  • title (str) – The Dialog window title

  • show_dummy – Dummy name, if showing of dummy element is desired

emitElementSelected(button_index)
class schrodinger.ui.qt.periodictable.PeriodicTableDialogMultipleClick

Bases: schrodinger.ui.qt.periodictable.PeriodicTableDialog

This provides a version of the Periodic Table widget in which allows user to select/deselect multiple elements at once.

__init__()

Create a PeriodicTable instance

Parameters
  • parent (QWidget) – Dialog’s parent.

  • default_element (int) – Default selected element.

  • max_element (int) – Number of elements displayed in the widget.

  • title (str) – The Dialog window title

  • show_dummy – Dummy name, if showing of dummy element is desired

updateSelectedElements(button_id, checked)

Allows user to select multiple elements at once from periodic elements

Parameters
  • button_id (int) – Button ID used in self.button_group

  • checked (bool) – true if the button is checked, or false if the button is unchecked

setSelectedElements(elements)

Setter to update selected_elements

Parameters

elements (list) – list of elements to update _selected_elements

getSelectedElements()

Getter for current _selected_elements

Return type

set

Returns

set of latest selected_elements

showEvent(event)

Reimplemented showEvent event to uncheck the default element

Parameters

event (QShowEvent) – Show event.