首页 > 其他分享 >PyQGIS开发 2 Qt开发入门

PyQGIS开发 2 Qt开发入门

时间:2024-09-20 14:53:30浏览次数:3  
标签:__ 文件 Qt qgis py QGIS PyQGIS 开发 MainWindow

PyQGIS Qt开发入门

1 使用 Qt Designer

QGIS在安装后已经配套了Qt Designer,可以在开始菜单 -> QGIS -> Qt Designer for QGIS点击运行程序,或者在QGIS安装目录/bin/qgis-designer.bat(或qgis-ltr-designer.bat)点击运行。

选择Main Window模板创建,点击下方的创建后,将创建如下窗口:

添加资源文件:

向资源文件中添加资源:
先添加前缀“ico”,然后添加文件

在属性编辑器中修改窗体图标:

快捷键Ctrl+R预览窗体:

我们通过Main Window模板创建的MainWindow界面已经附带了三个组件,分别是centralwidget(中心组件)、menubar(菜单栏)与statusbar(状态栏):

添加Frame控件,并设置垂直布局:

添加DockWidget并保存为ui文件:

2 PyCharm 加载ui、qrc文件

我们需要将.ui文件和.qrc资源文件都转换为.py文件。pyqt提供了pyuic和pyrcc工具来进行转换,而Pycharm提供了一个外部工具加载方法,打开File -> Settings -> Tools -> External Tools 界面,点击左上角“+”进行配置填写:

  • Name: pyuic
  • Programs: .../QGIS安装路径/bin/python-qgis.bat(或python-qgis-ltr.bat)
  • Argument: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
  • Working directory: $FileDir$

在PyCharm工程目录中右键“ui”文件 -> External Tools -> pyuic,点击运行后“ui”文件就会转换为py文件

再次打开File | Settings | Tools | External Tools界面添加工具pyrcc:

  • Name: pyrcc
  • Programs: .../QGIS安装路径/bin/python-qgis.bat(或python-qgis-ltr.bat)
  • Argument: -m PyQt5.pyrcc_main $FileName$ -o $FileNameWithoutExtension$_rc.py
  • Working directory: $FileDir$

在PyCharm工程目录中右键“qrc”文件 -> External Tools -> pyuic,点击运行后“qrc”文件就会转换为py文件

将其移到根目录下,并且右键项目,将其设为Source Root

3 运行界面

现在创建了mainWindow.py文件,但为了避免因改动ui文件而影响业务代码,所以不能在创建出来的mianWindow.py上进行代码编写,我们应该继承这个代码里的对象,在继承对象中编写代码,我们在根目录下新建mainWindowImpl.py:

from qgis.PyQt.QtWidgets import QMainWindow
from qgis.core import QgsProject
from ui.myWindow import Ui_MainWindow
​
PROJECT = QgsProject.instance()
class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)

在这个新子类中,继承了多个父类,一个是QMainWindow,这个父类表明了这个类的实现是一个主窗口对象;第二个是Ui_MainWindow,就是我们自己转换来的mainWindow.py的类。

在main.py中调用窗体:

from qgis.core import QgsApplication
from PyQt5.QtCore import Qt
from mainWindowImpl import MainWindow


if __name__ == '__main__':
    QgsApplication.setPrefixPath(r'D:\software\QGIS 3.38.0\apps\qgis', True)
    QgsApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    app = QgsApplication([], True)
    app.initQgis()
    mainWindow = MainWindow()
    mainWindow.show()
    app.exec_()
    app.exitQgis()
    

标签:__,文件,Qt,qgis,py,QGIS,PyQGIS,开发,MainWindow
From: https://blog.csdn.net/szy13323042191/article/details/142385353

相关文章

  • PyQGIS开发 3 基础功能开发
    PyQGIS开发3基础功能开发1添加图层树与地图视图1.1添加控件1.2Python代码fromPyQt5.QtCoreimportQMimeDatafromqgis.PyQt.QtWidgetsimportQMainWindowfromqgis._coreimportQgsMapLayer,QgsRasterLayer,QgsVectorLayerfromqgis.coreimportQgsProj......
  • 高级QML 3D组件开发
    高级QML3D组件开发使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视频免费看免......
  • VSCode配置STM32HAL库开发环境
    1.开发工具下载下载STM32CubeMX:https://www.st.com.cn/zh/development-tools/stm32cubemx.html(可通过访客方式下载)安装时一直默认即可下载stm32固件库:在线下载方式(需要登陆):安装好STM32CubeMX后,在菜单栏【Help】->【ManageEmbeddedSoftwarePackages】里选择合适的固......
  • 3D游戏开发实战:QML与虚幻引擎
    3D游戏开发实战:QML与虚幻引擎使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视频......
  • QT Widgets模块源码解析与应用
    QTWidgets模块源码解析与应用使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视......
  • QT QML模块的编程挑战与解决方案
    QTQML模块的编程挑战与解决方案使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化......
  • 如何高效利用API进行电商开发:淘宝API接口详解
    淘宝(AlibabaGroup)提供了丰富的API接口供开发者使用,这些接口可以帮助开发者在淘宝平台上实现各种功能,如商品搜索、交易管理、订单处理等。对于电商开发者来说,高效利用淘宝API进行开发至关重要。以下是一些关键步骤和技巧,帮助你高效利用淘宝AP进行电商开发:了解淘宝开放平台注......
  • QT绘图模块与数据库的结合
    QT绘图模块与数据库的结合使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视频免......
  • 软件开发的方法论:Supra模型
    Supra模型是一种用于软件开发的方法论,特别是在需求工程领域。它提供了一种系统化的方式来识别、分析和管理软件项目的需求。Supra模型强调在整个软件生命周期中持续地关注用户需求,并且通过迭代的方式逐步细化和完善这些需求。这个名字“Supra”并不是一个广泛认可的标准术语,因此可......
  • PyQt5 中的强大工具 ——QTextEdit 富文本框
    在PyQt5的世界里,QTextEdit是一个功能强大的富文本框组件,它为开发者提供了丰富的文本编辑和展示功能。本文将深入探讨PyQt5中的QTextEdit,带你领略其强大之处。一、引言在现代图形用户界面(GUI)应用程序中,富文本编辑功能是不可或缺的一部分。无论是编写文档、编辑邮件还......