Я довольно новичок в Qt и C++. У меня есть проблема с глобальными переменными QFile-Variables, которые мне нужны в разных функциях, все в моем классе MainWindow-Class.Qt нет соответствующей функции для вызова с использованием глобальных переменных
//mainwindow.h
[...]
public:
QFile *fIndex;
QFile *fString;
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
[...]
в mainwindow.cpp я попытался создать экземпляр:
//mainwindow.cpp
[...]
void MainWindow::on_btn_load_load_released()
{
QString _index_ = this->ui->txt_load_index->text();
QString _string_ = this->ui->txt_load_str->text();
fIndex = new QFile(_index_);
fString = new QFile(_string_);
foreach(QString iList, xmlActions::GetXMLID(fIndex))
{
this->ui->lst_src_result->addItem(iList);
}
}
[...]
класс, который называется здесь в цикле содержит следующие функции:
//mainheader.h
QList<QString> GetXMLID (QFile XMLIndex)
{
QList<QString> xList;
//QFile* xFile = new QFile(XMLFile);
if (XMLIndex.open(QIODevice::ReadOnly))
{
QXmlStreamReader reader(XMLIndex.readAll());
XMLIndex.close();
while(!reader.atEnd())
{
reader.readNext();
foreach(const QXmlStreamAttribute &attr, reader.attributes())
{
if (attr.name().toString() == QLatin1String("ID"))
{
//contList.addItem(attr.value().toString());
xList << attr.value().toString();
}
}
}
}
return xList;
}
как-то xmlActions: : getXMLID (fIndex) не любит указатели или что-то в этом роде. Компилятор жалуется:
нет соответствия функции для вызова 'xmlActions :: GetXMLID (QFile * &)'
я пытаюсь получить этот пробег в течение многих лет осла. Я также попытался использовать класс с конструкторами и деструкторами для создания экземпляра. Однако я могу использовать его только в этой одиночной функции on_btn_load_load_released(), когда я это делаю. Что я делаю не так?
Есть ли причина, по которой вы используете 'QFile * fIndex;' вместо 'QFile fIndex;'? – thuga