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號