2017-08-26 21 views
-2

我有以下功能:編寫複雜的功能,最佳實踐,語義

ui->user->setCurrentIndex(ui->user->findText(modelSuppliers->record(index.row()).value(modelSuppliers->record(index.row()).fieldName(5)).toString())); 

它設置了一個下拉菜單中的相應列的當前指數關係表模型放在桌上當行被選中。 我只是寫了這個函數,只是看着它暈了。也許在一個月裏,當我看着這件事情時,我會嘔吐。你如何處理這種聲明。你會做一箇中間變量來保存函數的某些部分,例如:

QString value=modelSuppliers->record(index.row()).fieldName(5)).toString(); 

並將該值插入原始函數中?或者你只是不打擾?

+0

這不是一個功能。 – juanchopanza

+2

使用臨時變量和可能的語句塊。 –

+0

把它拆開。如果該函數返回一個值,則分配給一個臨時變量。使用該變量作爲下一個函數的參數。 –

回答

0

的代碼變得更加容易,當你分解它讀取:

auto record = modelSuppliers->record(index.row()); 
auto fieldName = record.fieldName(5); 
auto text  = record.value(fieldName).toString(); 
auto index  = ui->user->findText(text); 

ui->user->setCurrentIndex(index);