父级中的Python Load模块可防止覆盖问题

时间:2017-05-19 21:34:42

标签: python-2.7 pyqt4 qgis

我正在使用Python构建QGIS插件,并为其设计了一个GUI。我可以使用pyuic4编译它,但在加载时会出错。我发现我可以通过在编译的Python代码中添加以下行来防止该错误。只有在某些时刻我才需要重新编译,因此文件会被覆盖并且行丢失。

form.py

from qgis.gui import QgsMapLayerComboBox

我有一个父母'导入编译版本的文件如下:

dialog.py

from form import Ui_Dialog

有没有办法在dialog.py中导入QgsMapLayerComboBox,所以在重新编译GUI后,我不必每次都将它添加到form.py中?

编辑:

<widget class="QgsMapLayerComboBox" name="mMapLayerComboBox">
 <property name="geometry">
  <rect>
   <x>100</x>
   <y>18</y>
   <width>160</width>
   <height>22</height>
  </rect>
 </property>
 <property name="filters">
  <set>QgsMapLayerProxyModel::RasterLayer</set>
 </property>
</widget>
</widget>
<customwidgets>
<customwidget>
 <class>QgsMapLayerComboBox</class>
 <extends>QComboBox</extends>
 <header>qgsmaplayercombobox.h</header>
</customwidget>
</customwidgets>

1 个答案:

答案 0 :(得分:2)

使用文本编辑器打开form.ui并替换:

<customwidget>
 <class>QgsMapLayerComboBox</class>
 <extends>QComboBox</extends>
 <header>qgsmaplayercombobox.h</header>
</customwidget>

<customwidget>
 <class>QgsMapLayerComboBox</class>
 <extends>QComboBox</extends>
 <header>qgis.gui</header>
</customwidget>

再次编译。