我正在使用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>
答案 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>
再次编译。