QGIS开发--小例子

文接上篇
上次说到QGIS开发小插件的问题,讲了插件怎么开发,开发好了放哪个地方,界面怎么设置,代码怎么关联。并且遗留了一些小问题,就是怎么添加多个界面,怎么实现界面跳转,这篇文章主要就是解决这个问题的。
这次内容有两个:1、界面关联、跳转;2、部分功能实现。
1、界面关联、跳转
在上一篇文章的基础上,我在Qt Creator中新建了一个ui(或者把其他的ui文件拷贝过来也行),然后就可以修改这个界面了,注意,修改好之后,需要编译一下(方法见上一篇文章)。
这下界面算是有两个了,怎么关联呢,网上有很多教程,不过都是在同一项目下,然后C++语言编写的,和我的需求不一致,搜索了一上午+半下午,还是没有效果。
所以我也尝试了很多方法,比如找官网(英文内容看不懂,并且不全面)、加群(里面有大神,但是不给你讲),在没有办法的情况下,我在想从插件本身出发,看看插件是从哪个类开始进入的,进入之后是哪个类用来调用和显示界面的,类里面是哪句话来实现的。所以就把插件里面类看了一下,果然,在插件的主类中,就是名称和你的插件一致的那个python文件,发现了打开方法。
在这里插入图片描述
从这个图片中,你应该就能看出端倪,首先实例化你需要显示的控件,(前面一定要添加该控件的引用,import ***),然后调用 show 方法,然后再调用 exec_ 方法。这样三步就把界面显示出来了。
注意:你可以在你需要的地方,写上这段代码,比如在某个窗口按钮的点击事件中。
2、部分功能实现
在实现了这个界面跳转效果之后,我又想加一点小功能,比如打开文件,显示图片等。所以就做个小Demo,在做的时候发现不少问题:Qt Creator 中控件很少,并且控件的属性不知道啥意思,不知道有哪些控件,控件的属性如何用代码修改,说白了就是没有找到这些控件的API文档,这点很不好。
这里附上一些代码,以供参考。

  def changePicture(self):# 通过label控件,来显示图片
    filename=QFileDialog.getOpenFileName(filter="images(*.jpg *.png)") #浏览找到文件
    a=QPixmap(filename)
    self.ui.label.setPixmap(a) #设置label控件的属性
  def chagePage(self): #修改 tabWidget 控件的显示页
    self.ui.tabWidget.setCurrentIndex(1)

总结:
1、Qt Creator 的API 没有找到,导致对控件的设置不顺畅,有方法的同学可以提供一下。
2、这种插件的开发方式,虽然实现了效果,但还是比较繁琐,如果开发稍微大点的项目,就会很尴尬了,所以还是按照上篇博文提到的,利用pycharm+qt+qgis的开发方式比较好,后面如果有需要的话,我就尝试一下这种方式。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值