(Qt C ++) UI Необъявленный идентификатор в новой функции

🙂

Я работаю над проектом, и мне нужно взять значение (ui-> SpawnX-> value ()) и поместить его в переменную int.

Когда я положил:

temp_int = ui->SpawnX->value();

в

void MainWindow::on_actionSave_savegame_dat_triggered()
{
int temp_int;
}

он работает безупречно, однако у меня их будет много, поэтому я хочу поместить его в простую функцию. Итак, выше этого я сделал:

void LevelWrite()
{
int temp_int;
temp_int = ui->SpawnX->value();
}

Но всякий раз, когда я запускаю его, я получаю сообщение об ошибке «ui»: undeclared identifier

Любая помощь будет замечательной: D

Спасибо

0

Решение

Вы должны иметь это

private:
void LevelWrite();

в вашем .h файле. Скорее всего, вам просто нужно добавить пустую строку LevelWrite () под уже существующим разделом private: вашего файла .h. И тогда в вашем .cpp файле вам понадобится

void MainWindow::LevelWrite()

Тогда вы должны быть в состоянии использовать ui-> в вашем методе LevelWrite. Надеюсь, это также может помочь кому-то, кто сталкивается с той же проблемой.

0

Другие решения

Я полагаю, ваше MainWindow является типизированным наследованным от QObject, верно? Таким образом, пользовательский интерфейс — это данные, к которым вы можете получить доступ только в своем классе, поэтому вы не можете получить к ним доступ из своей функции LevelWriter, вы можете создать такой метод доступа, как

void LevelWrite(MainWindow* window)
{
int temp_int;
temp_int = window->getUi()->SpawnX->value();
}

Или поместите LevelWriter в свой класс MainWindow.

2

Вам нужно сделать LevelWrite член класса MainWindow так как ui не глобальная переменная, а член класса MainWindow,

1
По вопросам рекламы [email protected]