Estoy creando un plugin para QGIS. He añadido un cuadro combinado y un botón pulsador en el plugin. El problema al que me enfrento es que quiero que el ComboBox permita la selección de capas desde las capas cargadas en el proyecto o que cuando el usuario haga clic en el pushButton navegue al directorio y el ComboBox se llene con la capa seleccionada desde el pushButton. Ambos funcionan individualmente, pero no consigo que funcionen juntos. Soy un principiante en Python, así que por favor hágame saber si hay algo muy obvio que me he perdido. Estoy dando mi código de abajo. Cuando lo ejecuto me sale el error -
TypeError: la señal nativa de Qt no se puede llamar
def select_input_raster(self):
filename, _filter = QFileDialog.getOpenFileName(
self.dlg, "Select input raster ","", '*.tif')
self.dlg.comboBox.currentTextChanged(filename)
def run(self):
if self.first_start == True:
self.first_start = False
self.dlg = ComboBoxPushButtonDialog()
self.dlg.pushButton.clicked.connect(self.select_input_raster)
layerlist1 = ['<Select a raster layer>']
layers1 = QgsProject.instance().mapLayers().values()
for layer in layers1:
if layer.type() == QgsMapLayer.RasterLayer:
layerlist1.append(layer.name())
#else layerlist1.append(select_input_raster())
#Clear the contents of the comboBox from previous runs
self.dlg.comboBox.clear()
# Populate the comboBox with names of all the loaded raster layers
self.dlg.comboBox.addItems(layerlist1)
# show the dialog
self.dlg.show()
# Run the dialog event loop
result = self.dlg.exec_()