Я хочу вызвать функцию indexChanged()
, если индекс в моем treeView изменен.
Я использовал сигнал ui->treeView->currentChanged()
, но он не вызывал indexChanged()
слот, хотя я подключил сигнал к слоту.
Вот мой код:
.cpp файл
TipManager::TipManager(QWidget *parent) :
QWidget(parent),
ui(new Ui::TipManager)
{
ui->setupUi(this);
connect(ui->treeView->selectionModel(), &QItemSelectionModel::currentChanged, this, &TipManager::indexChanged);
...
}
void TipManager::indexChanged(const QModelIndex ¤t, const QModelIndex &previous)
{
trimCurrentPath(previous);
}
.h файл
namespace Ui {
class TipManager;
}
class TipManager : public QWidget
{
Q_OBJECT
public:
explicit TipManager(QWidget *parent = 0);
~TipManager();
public slots:
void indexChanged(const QModelIndex ¤t, const QModelIndex &previous);
private:
Ui::TipManager *ui;
...
};
Я также тестировал в режиме отладки, но функция слота indexChanged()
даже не вызывается. Кроме того, вместо этого отображается следующее сообщение: QObject :: connect: неверный нулевой параметр