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的開發方式比較好,後面如果有需要的話,我就嘗試一下這種方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章