Неопределенная ссылка для статического QStringList - PullRequest
1 голос
/ 11 марта 2012

Итак, я хочу создать раздел «последние файлы» в «Меню файлов» моего приложения для работы с электронными таблицами.При создании приложения функция, которая должна обновлять latestFileActions QStringList, генерирует следующую ошибку /home/axel/QtSDK/Code/QMainWindow/mainwindow.cpp:-1: error: undefined reference to 'MainWindow::recentFiles'

Итак, из полученной ошибки, что recentFiles не определено?Потому что у меня есть это в приватном разделе моего заголовка: QStringList static recentFiles;

Это целая функция updateRecentFileActions():

void MainWindow::updateRecentFileActions(){
  QMutableStringListIterator i(recentFiles);
  while (i.hasNext()) {
    if (!QFile::exists(i.next()))
        i.remove();
  }

  for (int j = 0; j < MaxRecentFiles; ++j) {
    if (j < recentFiles.count()) {
        QString text = tr("&%1 %2")
        .arg(j + 1)
        .arg(strippedName(recentFiles[j]));
        recentFileActions[j]->setText(text);
        recentFileActions[j]->setData(recentFiles[j]);
        recentFileActions[j]->setVisible(true);
    } else {
        recentFileActions[j]->setVisible(false);
    }
  }
  separatorAction->setVisible(!recentFiles.isEmpty());
}

Я добавлю любую недостающую информацию.

Спасибо.

1 Ответ

5 голосов
/ 11 марта 2012
QStringList static recentFiles;

Это только декларация. Вам необходимо определить статическую переменную в исходном файле:

QStringList MainWindow::recentFiles;

Если вы не понимаете, зачем вам это нужно, посмотрите в See этот часто задаваемый вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...