2013-07-12 36 views
0

:)(Qt的C++)UI未聲明的標識符當新的功能

我工作的一個項目,我需要一個值(用戶界面 - > SpawnX->值()),並把它變成一個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」:未聲明的標識符

任何幫助將是美妙的:d

感謝

+0

能'ui'成爲'MainWindow'的數據成員嗎? – juanchopanza

回答

1

您需要製作LevelWriteMainWindow的班級成員,因爲ui不是全局變量,而是MainWindow的班級成員。

+0

我剛剛猜到了一下,並將LevelWrite添加到其他人旁邊的私人部分,然後添加了MainWindow :: to LevelWrite 所以我的功能是MainWindow :: LevelWrite() – mrg95

2

我想你的MainWindow是一個從QObject類型化的遺傳,對吧?因此,用戶界面是你只能訪問你的類數據,這就是爲什麼你不能從你的函數LevelWriter訪問它,你可以讓一個訪問像

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

或把LevelWriter在MainWindow類。

+0

這沒有工作出於某種原因。 ? :/ – mrg95

+0

我得到的「getUi」不是MainWindow的成員,在此之後更多。我改變它爲「ui」,「Ui」,並且沒有括號。沒有任何工作 – mrg95

+0

這是因爲你必須創建這個方法。對不起,我沒有真正清楚。你必須執行它。 – Hulor