大赵传奇

GIS解决方案,webgis , 桌面、数据、服务--QQ276605216

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
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_())

 

 

posted on 2025-06-17 16:30  赵长青  阅读(37)  评论(0)    收藏  举报