import sys import os from qgis.core import * from qgis.gui import * from PyQt5.QtWidgets import (QApplication, QMainWindow, QAction, QLineEdit, QVBoxLayout, QWidget) from PyQt5.QtGui import QIcon class MyApp(QMainWindow): def __init__(self): super().__init__() # 1. 设置环境变量 os.environ['QT_PLUGIN_PATH'] = r"C:\Program Files\QGIS 3.28.0\apps\Qt5\plugins" os.environ['PATH'] = r"C:\Program Files\QGIS 3.28.0\bin;" + os.environ['PATH'] # 2. 初始化QGIS应用 QgsApplication.setPrefixPath(r"C:\Program Files\QGIS 3.28.0\apps\qgis", True) self.qgs = QgsApplication([], False) self.qgs.initQgis() # 3. 设置主窗口 self.setWindowTitle("QGIS独立应用") self.resize(800, 600) # 创建中央部件和主布局 central_widget = QWidget() self.setCentralWidget(central_widget) main_layout = QVBoxLayout() central_widget.setLayout(main_layout) # 添加工具栏 toolbar = self.addToolBar("Tools") toolbar.setStyleSheet("background-color: yellow") zoom_in = QAction(QIcon("zoom_in.png"), "放大", self) toolbar.addAction(zoom_in) # 创建编辑框并添加到主布局 self.nameEdit = QLineEdit() self.nameEdit.setStyleSheet(""" color: blue; background-color: yellow; selection-color: white; selection-background-color: green; """) # 将编辑框添加到主布局(工具栏下方) main_layout.addWidget(self.nameEdit) # 添加地图画布到主布局 self.canvas = QgsMapCanvas() self.canvas.setStyleSheet("color: blue; background-color: green") #无效 main_layout.addWidget(self.canvas) if __name__ == '__main__': app = QApplication(sys.argv) window = MyApp() window.show() sys.exit(app.exec_())

浙公网安备 33010602011771号