2014-02-24 56 views
-3

我在Qt中使用C++,在Qt中可以編輯程序的外觀,所以當用戶選擇一個樣式時,它將進入樣式表並編輯它,但這就是我的問題所在!我正在使用if語句來獲取他們從QComboBox和QList中選擇的內容,但是當我嘗試編輯它時,我無法訪問if語句中的QString。所以基本上我想知道如果他們是一種方法來訪問一個if語句內的QString?C++在if語句中訪問QString

我得到一個錯誤說:

var0不是在這個範圍內聲明

例如:

if(2 < 3) { 
    QString var0 = "blue"; 
} 

// Problem 
qApp->setStyleSheet("QTextEdit { background-color: " + var0 + ";}"); 
+0

你能顯示你的代碼嗎? –

+0

如果if語句的條件爲false,你會期望'setStyleSheet'調用做什麼? –

+0

我有一個'else'語句設置爲none,例如它會說'background-color:none;' –

回答

1

var0 if語句的範圍宣佈,它在它之後不住。 (即使是QString對象的資源也被釋放。)你需要聲明var0以外的if:

QString var0; 
if(2 < 3) { 
    var0 = "blue"; 
} 

// No problem 
qApp->setStyleSheet("QTextEdit { background-color: " + var0 + ";}");