Donc voici mon code (reduite) :
fileList = new QTreeWidget; //Je fais mon QTreeWidget
fileList->setEnabled(false);
fileList->setRootIsDecorated(false);
fileList->setHeaderLabels(QStringList() << tr("Name") << tr("Size") << tr("Owner") << tr("Group") << tr("Time"));
fileList->header()->setStretchLastSection(false);
QWidget *widget = new QWidget;
QGridLayout layout_1 = new QGridLayout;
layout_1->addWidget(fileList, 3, 0); //Je place mon QTreeWidget dans ma fenêtre via un layout
widget->setLayout(layout_1);
connect(ftp, SIGNAL(commandFinished(int, bool)), this, SLOT(commandefini(int, bool)));
connect(ftp, SIGNAL(listInfo(QUrlInfo)), this, SLOT(arbo(QUrlInfo))); //connexion des signaux avec les slots...
connect(connexion,SIGNAL(clicked()),qApp,SLOT(connect1()));
void fenetre::connect1()
{
ftp->connectToHost(ftptext->text(), portnum->value());
ftp->login(utilisateurtext->text(), mdptext->text());
}
void fenetre::commandefini(int i, bool i2)
{
if (ftp->currentCommand() == 3) //Une fois que connectToHost se termine, je lance ftp->list();
{
if (i2)
{
ftp->close();
}
else
{
int id = ftp->list();
qDebug()<< id << ftp->state();
}
}
if (ftp->currentCommand() == 4)
{
}
}
void fenetre::arbo(const QUrlInfo &arbo1)
{
qDebug()<<"arbo : "<< arbo1.name();
QTreeWidgetItem *item = new QTreeWidgetItem;
item->setText(0, arbo1.name());
item->setText(1, QString::number(arbo1.size()));
item->setText(2, arbo1.owner());
item->setText(3, arbo1.group());
item->setText(4, arbo1.lastModified().toString("MMM dd yyyy"));
isDirectory[arbo1.name()] = arbo1.isDir();
fileList->addTopLevelItem(item);
if (!fileList->currentItem())
{
fileList->setCurrentItem(fileList->topLevelItem(0));
fileList->setEnabled(true);
}
}
Mais j'obtient ceci apres comme valeur a la ligne : qDebug()<< id << ftp->state();
Starting C:/jéjé/jeje/projet/Net Developpe/release/Net Developpe.exe...
3 3
id vaut 3 or il devrait valoir 6, valeur de ftp->list(); et non 3 la valeur de ftp->connectToHost();
Cela a donc pour effet de ne pas lancé mon slot arbo...