Files
PlantAI-dev/tools/pymol-env/lib/python3.12/site-packages/pymol/gui.py
T
2026-08-03 18:42:47 +08:00

93 lines
2.4 KiB
Python

#A* -------------------------------------------------------------------
#B* This file contains source code for the PyMOL computer program
#C* Copyright (c) Schrodinger, LLC.
#D* -------------------------------------------------------------------
#E* It is unlawful to modify or remove this copyright notice.
#F* -------------------------------------------------------------------
#G* Please see the accompanying LICENSE file for further information.
#H* -------------------------------------------------------------------
#I* Additional authors of this source file include:
#-*
#-*
#-*
#Z* -------------------------------------------------------------------
# abstract (external or internal) gui control interface
import pymol
cmd = __import__("sys").modules["pymol.cmd"]
def get_pmgapp():
'''
Returns the PMGApp instance.
'''
if pymol._ext_gui is None:
pymol._ext_gui = createlegacypmgapp()
return pymol._ext_gui
def get_qtwindow():
'''
Returns the PyMOLQtGUI/QMainWindow instance, or None if not available.
'''
try:
from pmg_qt.pymol_qt_gui import window
return window
except ImportError:
return None
def createlegacypmgapp():
import pymol.plugins.legacysupport as m
return m.createlegacypmgapp()
# external gui control
def ext_hide(_self=cmd):
qtwindow = get_qtwindow()
if qtwindow is not None:
print('ignoring gui.ext_hide')
return
pymol = _self._pymol
if pymol._ext_gui is not None:
pymol._ext_gui.fifo.put('self.root.withdraw()')
else:
pass
def ext_show(_self=cmd):
qtwindow = get_qtwindow()
if qtwindow is not None:
print('ignoring gui.ext_show')
return
pymol = _self._pymol
if pymol._ext_gui is not None:
pymol._ext_gui.fifo.put('self.root.deiconify()')
else:
pass
# common actions
def save_as(_self=cmd):
qtwindow = get_qtwindow()
if qtwindow is not None:
qtwindow.session_save_as()
return
pymol = _self._pymol
if pymol._ext_gui is not None:
pymol._ext_gui.fifo.put('self.skin.session_save_as()')
else:
pass
def save_image(_self=cmd):
qtwindow = get_qtwindow()
if qtwindow is not None:
qtwindow.file_save_png()
return
pymol = _self._pymol
if pymol._ext_gui is not None:
pymol._ext_gui.fifo.put('self.skin.file_save_png()')
else:
pass