本文整理汇总了Python中qgis.core.QgsApplication.exitQgis方法的典型用法代码示例。如果您正苦于以下问题:Python QgsApplication.exitQgis方法的具体用法?Python QgsApplication.exitQgis怎么用?Python QgsApplication.exitQgis使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsApplication
的用法示例。
在下文中一共展示了QgsApplication.exitQgis方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def main(argv):
# create Qt application
app = QtGui.QApplication(argv, True)
# Set the app style
mySplashPix = QtGui.QPixmap(QtCore.QString(DATA_DIR + '/OCEAN.png'))
mySplashPixScaled = mySplashPix.scaled(500, 300, Qt.Qt.KeepAspectRatio)
mySplash = QtGui.QSplashScreen(mySplashPixScaled)
mySplash.show()
# initialize qgis libraries
QgsApplication.setPrefixPath(QGIS_PREFIX, True)
QgsApplication.initQgis()
# create main window
wnd = MainWindow(mySplash)
wnd.show()
# Create signal for app finish
app.connect(
app, QtCore.SIGNAL('lastWindowClosed()'), app, QtCore.SLOT('quit()'))
# Start the app up
retval = app.exec_()
# We got an exit signal so time to clean up
QgsApplication.exitQgis()
sys.exit(retval)
示例2: qgisapp
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
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)
示例3: main
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def main():
app = QtGui.QApplication(sys.argv, True)
# supply path to where is your qgis installed
QgsApplication.setPrefixPath("/usr", True)
# load providers
QgsApplication.initQgis()
# print QgsApplication.showSettings()
mw = MainWindow()
try:
mw.create_layer(DATA)
mw.show()
app.exec_()
finally:
QgsApplication.exitQgis()
示例4: main
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def main(argv):
# create Qt application
app = QtGui.QApplication(argv, True)
# Set the app style
# initialize qgis libraries
QgsApplication.setPrefixPath(QGIS_PREFIX_PATH, True)
QgsApplication.initQgis()
# create main window
wnd = MainWindow()
wnd.show()
# Start the app up
retval = app.exec_()
# We got an exit signal so time to clean up
QgsApplication.exitQgis()
sys.exit(retval)
示例5: main
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def main(argv):
names = []
for n in LAYERS:
names.append(QString(n))
qgisPrefix = homeDir()
QApplication.setOrganizationName("ICIMOD");
QApplication.setOrganizationDomain("icimod.org");
QApplication.setApplicationName("Glacial Lakes Viewer");
app = QApplication(argv, True)
splash = SplashScreen(qgisPrefix)
splash.showMessage(unicode("starting..."))
QgsApplication.setPrefixPath(qgisPrefix, True)
QgsApplication.initQgis()
window = MainWindow(splash)
window.mapCanvas.loadInitialLayers(splash)
layers,rLayers = window.mapCanvas.getMapLayers(names)
window.show()
window.mapCanvas.refreshCanvas(splash,layers,rLayers)
del splash
app.exec_()
QgsApplication.exitQgis()
示例6: tearDownClass
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def tearDownClass( self ):
self.msg.show( "Info! TearDown started", 'info', True )
# test07 deletes the layer object, so create it again
self.layer = QgsVectorLayer( self.layerPath, 'puntos', 'ogr' )
#Remove AutoField modified
autoFieldId = self.autoFieldManager.buildAutoFieldId( self.layer, u'modified' )
self.autoFieldManager.removeAutoField( autoFieldId )
#Delete field f1
fieldIndex = self.layer.fieldNameIndex('f1')
self.layer.dataProvider().deleteAttributes( [fieldIndex] )
self.layer.updateFields()
#Delete features from test layer
fIds = self.layer.allFeatureIds()
self.layer.dataProvider().deleteFeatures( fIds )
#Remove layer from Registry
QgsMapLayerRegistry.instance().removeMapLayer( self.layer.id() )
self.msg.show( "Info! TearDown finished", 'info', True )
QgsApplication.exitQgis()
示例7: test
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def test(host, pguser):
# create the test database
os.system(f"dropdb --if-exists -h {host} -U {pguser} {wc_dbname}")
os.system(f"createdb -h {host} -U {pguser} {wc_dbname}")
os.system(f"dropdb --if-exists -h {host} -U {pguser} {dbname}")
os.system(f"createdb -h {host} -U {pguser} {dbname}")
qgs = QgsApplication([], False)
qgs.initQgis()
for test_class in [SpatialitePluginTest,
PgLocalPluginTest,
PgServerPluginTest]:
test = test_class(host, pguser)
test.test_checkout()
del test
test = test_class(host, pguser)
test.test_checkout_w_selected_features()
del test
qgs.exitQgis()
示例8: main
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def main( argv ):
print 'I: Starting viewer ...'
app = SingletonApp( argv )
dictOpts = { '-h':'', '-p':'5432', '-U':'', '-W':'', '-d':'', '-s':'public',
'-t':'', '-g':'', 'type':'unknown', 'srid':'', 'col':'' }
opts, args = getopt.getopt( sys.argv[1:], 'h:p:U:W:d:s:t:g:', [] )
dictOpts.update( opts )
if dictOpts['-t'] == '':
print >> sys.stderr, 'E: Table name is required'
print __doc__
sys.exit( 1 )
d = QSqlDatabase.addDatabase( "QPSQL", "PgSQLDb" )
d.setHostName( dictOpts['-h'] )
d.setPort( int( dictOpts['-p'] ) )
d.setDatabaseName( dictOpts['-d'] )
d.setUserName( dictOpts['-U'] )
d.setPassword( dictOpts['-W'] )
if d.open():
print 'I: Database connection was succesfull'
query = QSqlQuery( d )
query.exec_( "SELECT Count(srid) FROM raster_columns WHERE r_table_schema = '%s' AND r_table_name = '%s'" % ( dictOpts['-s'], dictOpts['-t'] ) )
if query.next() and query.value( 0 ).toBool(): # Raster layer (WKTRaster)!
query.exec_( "SELECT srid, r_raster_column FROM raster_columns \
WHERE r_table_schema = '%s' AND \
r_table_name = '%s' " % ( dictOpts['-s'], dictOpts['-t'] ) )
if query.next():
dictOpts[ 'srid' ] = str( query.value( 0 ).toString() )
dictOpts[ 'col' ] = str( query.value( 1 ).toString() )
dictOpts['type'] = 'raster'
print 'I: Raster layer detected'
else: # Vector layer?
query.exec_( "SELECT column_name FROM information_schema.columns \
WHERE table_schema = '%s' AND \
table_name = '%s' AND \
udt_name = 'geometry' LIMIT 1" % ( dictOpts['-s'], dictOpts['-t'] ) )
if not query.next(): # Geography layer?
query.exec_( "SELECT column_name FROM information_schema.columns \
WHERE table_schema = '%s' AND \
table_name = '%s' AND \
udt_name = 'geography' LIMIT 1" % ( dictOpts['-s'], dictOpts['-t'] ) )
if query.first(): # Vector layer!
dictOpts[ '-g' ] = str( query.value( 0 ).toString() )
query.exec_( "SELECT srid FROM geometry_columns \
WHERE f_table_schema = '%s' AND \
f_table_name = '%s' " % ( dictOpts['-s'], dictOpts['-t'] ) )
if query.next():
dictOpts[ 'srid' ] = str( query.value( 0 ).toString() )
dictOpts['type'] = 'vector'
print 'I: Vector layer detected'
if not dictOpts[ 'type' ] == 'unknown': # The object is a layer
if app.is_running:
# Application already running, send message to load data
app.send_message( dictOpts )
else:
# Start the Viewer
# QGIS libs init
QgsApplication.setPrefixPath(qgis_prefix, True)
QgsApplication.initQgis()
# Open viewer
wnd = ViewerWnd( app, dictOpts )
wnd.move(100,100)
wnd.resize(400, 500)
wnd.show()
retval = app.exec_()
# Exit
QgsApplication.exitQgis()
print 'I: Exiting ...'
sys.exit(retval)
else:
show_error("Error when opening layer",
"Layer '%s.%s' doesn't exist. Be sure the selected object is either raster or vector layer." % (dictOpts['-s'], dictOpts['-t']))
else:
show_error("Connection error", "Error when connecting to database.")
示例9: exit
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def exit(self):
sys.excepthook = self._oldhook
from qgis.core import QgsApplication
QgsApplication.exitQgis()
QgsApplication.quit()
示例10: fin
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def fin():
print ("teardown QGIS")
QgsApplication.exitQgis()
示例11: on_quit
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def on_quit():
QgsApplication.exitQgis()
app.quit()
示例12: dict
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
qgs_server.putenv('SERVER_NAME', self.server.server_name)
qgs_server.putenv('REQUEST_URI', self.path)
parsed_path = urllib.parse.urlparse(self.path)
headers, body = qgs_server.handleRequest(parsed_path.query)
headers_dict = dict(h.split(': ', 1) for h in headers.decode().split('\n') if h)
try:
self.send_response(int(headers_dict['Status'].split(' ')[0]))
except:
self.send_response(200)
for k, v in list(headers_dict.items()):
self.send_header(k, v)
self.end_headers()
self.wfile.write(body)
return
def do_POST(self):
content_len = int(self.headers.get('content-length', 0))
post_body = self.rfile.read(content_len).decode()
request = post_body[1:post_body.find(' ')]
self.path = self.path + '&REQUEST_BODY=' + \
post_body.replace('&', '') + '&REQUEST=' + request
return self.do_GET()
if __name__ == '__main__':
server = HTTPServer(('localhost', QGIS_SERVER_DEFAULT_PORT), Handler)
print('Starting server on localhost:%s, use <Ctrl-C> to stop' %
QGIS_SERVER_DEFAULT_PORT)
server.serve_forever()
qgs_app.exitQgis()
示例13: main
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def main(argv):
print "I: Starting viewer ..."
app = SingletonApp(argv)
dictOpts = {
"-h": "",
"-p": "5432",
"-U": "",
"-W": "",
"-d": "",
"-s": "public",
"-t": "",
"-g": "",
"type": "unknown",
"srid": "",
}
opts, args = getopt.getopt(sys.argv[1:], "h:p:U:W:d:s:t:g:", [])
dictOpts.update(opts)
if dictOpts["-t"] == "":
print >> sys.stderr, "E: Table name is required"
print __doc__
sys.exit(1)
d = QSqlDatabase.addDatabase("QPSQL", "PgSQLDb")
d.setHostName(dictOpts["-h"])
d.setPort(int(dictOpts["-p"]))
d.setDatabaseName(dictOpts["-d"])
d.setUserName(dictOpts["-U"])
d.setPassword(dictOpts["-W"])
if d.open():
print "I: Database connection was succesfull"
query = QSqlQuery(d)
query.exec_(
"SELECT Count(oid) FROM raster_columns WHERE r_table_schema = '%s' AND r_table_name = '%s'"
% (dictOpts["-s"], dictOpts["-t"])
)
if query.next() and query.value(0).toBool(): # Raster layer (WKTRaster)!
query.exec_(
"SELECT srid FROM raster_columns \
WHERE r_table_schema = '%s' AND \
r_table_name = '%s' "
% (dictOpts["-s"], dictOpts["-t"])
)
if query.next():
dictOpts["srid"] = str(query.value(0).toString())
dictOpts["type"] = "raster"
print "I: Raster layer detected"
else: # Vector layer?
query.exec_(
"SELECT column_name FROM information_schema.columns \
WHERE table_schema = '%s' AND \
table_name = '%s' AND \
udt_name = 'geometry' LIMIT 1"
% (dictOpts["-s"], dictOpts["-t"])
)
if query.next(): # Vector layer!
dictOpts["-g"] = str(query.value(0).toString())
query.exec_(
"SELECT srid FROM geometry_columns \
WHERE f_table_schema = '%s' AND \
f_table_name = '%s' "
% (dictOpts["-s"], dictOpts["-t"])
)
if query.next():
dictOpts["srid"] = str(query.value(0).toString())
dictOpts["type"] = "vector"
print "I: Vector layer detected"
if not dictOpts["type"] == "unknown": # The object is a layer
if app.is_running:
# Application already running, send message to load data
app.send_message(dictOpts)
else:
# Start the Viewer
# QGIS libs init
QgsApplication.setPrefixPath(qgis_prefix, True)
QgsApplication.initQgis()
# Open viewer
wnd = ViewerWnd(app, dictOpts)
wnd.move(100, 100)
wnd.resize(400, 500)
wnd.show()
retval = app.exec_()
# Exit
QgsApplication.exitQgis()
print "I: Exiting ..."
sys.exit(retval)
#.........这里部分代码省略.........
示例14: renderer
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def renderer(self):
qgis = QgsApplication([], False)
qgis.setPrefixPath(self.settings.get('path'), True)
qgis.setMaxThreads(1)
qgis.initQgis()
while True:
try:
fndata, srs, render_size, extended, \
target_box, result = self.queue.get()
layer = QgsVectorLayer(fndata, 'layer', 'ogr')
crs = QgsCoordinateReferenceSystem(srs.id)
layer.setCrs(crs)
settings = QgsMapSettings()
settings.setLayers([layer.id()])
settings.setFlag(QgsMapSettings.DrawLabeling)
settings.setFlag(QgsMapSettings.Antialiasing)
settings.setCrsTransformEnabled(True)
settings.setDestinationCrs(crs)
settings.setMapUnits(crs.mapUnits())
settings.setOutputSize(QSize(*render_size))
settings.setExtent(QgsRectangle(*extended))
settings.setOutputImageFormat(QImage.Format_ARGB32)
bgcolor = QColor.fromRgba(qRgba(255, 255, 255, 0))
settings.setBackgroundColor(bgcolor)
settings.setOutputDpi(96)
QgsMapLayerRegistry.instance().addMapLayer(layer)
settings.setLayers([layer.id()])
# Создаем QImage руками чтобы можно было использовать
# QgsMapRendererCustomPainterJob. Остальные не позволяют
# обойти баг с рисованием поверх старого.
img = QImage(settings.outputSize(), QImage.Format_ARGB32)
# Эти костыли нужны для того, чтобы корректно рисовались
# слои на прозрачном фоне, без этого получается каша.
img.fill(QColor.fromRgba(qRgba(255, 255, 255, 255)))
img.fill(QColor.fromRgba(qRgba(255, 255, 255, 0)))
# DPI должно быть таким же как в settings, иначе ошибка. В QImage
# разрешение указывается в точках на метр по каждой оси.
dpm = settings.outputDpi() / 25.4 * 1000
img.setDotsPerMeterX(dpm)
img.setDotsPerMeterY(dpm)
painter = QPainter(img)
job = QgsMapRendererCustomPainterJob(settings, painter)
job.renderSynchronously()
painter.end()
QgsMapLayerRegistry.instance().removeAllMapLayers()
# Преобразование QImage в PIL
ba = QByteArray()
bf = QBuffer(ba)
bf.open(QIODevice.WriteOnly)
img.save(bf, 'PNG')
bf.close()
buf = StringIO()
buf.write(bf.data())
buf.seek(0)
img = PIL.Image.open(buf)
# Вырезаем нужный нам кусок изображения
result.put(img.crop(target_box))
except Exception as e:
self.logger.error(e.message)
qgis.exitQgis()
示例15: exit
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import exitQgis [as 别名]
def exit(self):
from qgis.core import QgsApplication
QgsApplication.exitQgis()
QgsApplication.quit()