mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
     --exclude="ui_*.py,debian/*,python/ext-libs/*" \
     .
		
	
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import sys
 | |
| from contextlib import contextmanager
 | |
| from qgis.core import QgsApplication
 | |
| 
 | |
| 
 | |
| @contextmanager
 | |
| def qgisapp(args=None, guienabled=True, configpath=None, sysexit=True):
 | |
|     """
 | |
|     Create a new QGIS Qt application.
 | |
| 
 | |
|     You should use this before creating any Qt widgets or QGIS objects for
 | |
|     your custom QGIS based application.
 | |
| 
 | |
|     usage:
 | |
|         from qgis.core.contextmanagers import qgisapp
 | |
| 
 | |
|         def main(app):
 | |
|             # Run your main code block
 | |
| 
 | |
|             with qgisapp(sys.argv) as app:
 | |
|                 main(app)
 | |
| 
 | |
|     args - args passed to the underlying QApplication.
 | |
|     guienabled - True by default will create a QApplication with a GUI. Pass
 | |
|                  False if you wish to create no GUI based app, e.g a server app.
 | |
|     configpath - Custom config path QGIS will use to load settings.
 | |
|     sysexit - Call sys.exit on app exit. True by default.
 | |
|     """
 | |
|     if not args:
 | |
|         args = []
 | |
|     app = QgsApplication(args, guienabled, configpath)
 | |
|     QgsApplication.initQgis()
 | |
|     yield app
 | |
|     if guienabled:
 | |
|         exitcode = app.exec_()
 | |
|     else:
 | |
|         exitcode = 0
 | |
|     QgsApplication.exitQgis()
 | |
|     if sysexit:
 | |
|         sys.exit(exitcode)
 |