PyQtを使用した信号/スロットの問題で少し問題があります。私のコードは以下のとおりですが、おそらく少し説明する価値があります。最初の2つのQObject.connect()はTrueを返すので、接続が確立されていることがわかります。ただし、comboBoxで選択を変更すると、関数getParametersが期待どおりに呼び出されません。ComboBoxに関連する他の信号をデバッグおよびテストするための以下の5つの接続。それらも期待通りにログを印刷しません。
接続を指定する新しい方法がある他の場所で読んだことから、これが問題になる可能性がありますか?もしそうなら、誰かが私にそのフォーマットの例を教えてもらえますか?ありがとう!
#interactive GUI connections:
resultCombo = QObject.connect(self.dlg.ui.comboBox, SIGNAL("currentIndexChanged(const QString & text)"), self.getParameters)
resultSpin = QObject.connect(self.dlg.ui.spinBox_bands, SIGNAL("valueChanged(int i)"), self.getParameters)
QMessageBox.information( self.iface.mainWindow(),"Info", "connections: ComboBox = %s SpinBox = %s"%(str(resultCombo), str(resultSpin)) )
QObject.connect(self.dlg.ui.comboBox, SIGNAL("currentIndexChanged(const QString & text)"), self.log1)
QObject.connect(self.dlg.ui.comboBox, SIGNAL("currentIndexChanged(int index)"), self.log2)
QObject.connect(self.dlg.ui.comboBox, SIGNAL("currentTextChanged(const QString & text)"), self.log3)
QObject.connect(self.dlg.ui.comboBox, SIGNAL("highlighted(const QString & text)"), self.log4)
QObject.connect(self.dlg.ui.comboBox, SIGNAL("activated(const QString & text)"), self.log5)
def log1(self, input):
QgsMessageLog.logMessage("currentIndexChanged string. input = " + str(input), "Debug", 0)
def log2(self, input):
QgsMessageLog.logMessage("currentIndexChanged int. input = " + str(input), "Debug", 0)
def log3(self, input):
QgsMessageLog.logMessage("currentTextChanged string. input = " + str(input), "Debug", 0)
def log4(self, input):
QgsMessageLog.logMessage("highlighted string. input = " + str(input), "Debug", 0)
def log5(self, input):
QgsMessageLog.logMessage("cactivated string. input = " + str(input), "Debug", 0)