mirror of
https://github.com/qgis/QGIS.git
synced 2025-11-22 00:14:55 -05:00
monkey path custom widgets
this will add module to the system to avoid missing modules when running on a local install (uic widget-plugin not installed)
This commit is contained in:
parent
9fcee524b9
commit
0cffd19e5f
@ -25,6 +25,7 @@ __revision__ = '$Format:%H$'
|
||||
|
||||
from builtins import zip
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def setupenv():
|
||||
@ -69,3 +70,20 @@ if os.name == 'nt':
|
||||
|
||||
|
||||
from qgis.PyQt import QtCore
|
||||
|
||||
# monkey patching custom widgets in case we are running on a local install
|
||||
# this should fix import errors such as "ModuleNotFoundError: No module named qgsfilewidget"
|
||||
# ("from qgsfilewidget import QgsFileWidget")
|
||||
# In a complete install, this is normally avoided and rather imports "qgis.gui"
|
||||
# (thanks to uic/widget-plugins/qgis_customwidgets.py)
|
||||
try:
|
||||
import qgis.gui
|
||||
widget_list = dir(qgis.gui)
|
||||
# remove widgets that are not allowed as customwidgets (they need to be manually promoted)
|
||||
skip_list = ['QgsScrollArea']
|
||||
for widget in widget_list:
|
||||
if widget.startswith('Qgs') and widget not in skip_list:
|
||||
sys.modules[widget.lower()] = qgis.gui
|
||||
except ImportError:
|
||||
# gui might not be built
|
||||
pass
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user