🙂
Я работаю над проектом, и мне нужно взять значение (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
Спасибо
Вы должны иметь это
private:
void LevelWrite();
в вашем .h файле. Скорее всего, вам просто нужно добавить пустую строку LevelWrite () под уже существующим разделом private: вашего файла .h. И тогда в вашем .cpp файле вам понадобится
void MainWindow::LevelWrite()
Тогда вы должны быть в состоянии использовать ui->
в вашем методе LevelWrite. Надеюсь, это также может помочь кому-то, кто сталкивается с той же проблемой.
Я полагаю, ваше MainWindow является типизированным наследованным от QObject, верно? Таким образом, пользовательский интерфейс — это данные, к которым вы можете получить доступ только в своем классе, поэтому вы не можете получить к ним доступ из своей функции LevelWriter, вы можете создать такой метод доступа, как
void LevelWrite(MainWindow* window)
{
int temp_int;
temp_int = window->getUi()->SpawnX->value();
}
Или поместите LevelWriter в свой класс MainWindow.
Вам нужно сделать LevelWrite
член класса MainWindow
так как ui
не глобальная переменная, а член класса MainWindow
,