2012-04-08 40 views
2

我需要QTableView項目小數點後的指定位數,所以我寫了一個簡單的代表。小數點後面的數字QTableView代表

class TableItemDelegate : public QStyledItemDelegate 
{ 

    Q_OBJECT 

public: 

    TableItemDelegate(QObject *parent = 0) : QStyledItemDelegate(parent) {} 

    QString displayText(const QVariant & value, const QLocale & locale) 
    { 
    QString str = QString::number(value.toDouble(), 'f', 8); 
    return str; 
    } 
}; 

但它沒有工作,構造函數調用,但不是displayText()函數。

TableItemDelegate *decDelegate = new TableItemDelegate(tableView); 
tableView->setItemDelegate(decDelegate); 

我在做什麼錯?

+0

你有沒有嘗試過的QVariant :: isValid方法或返回一個硬編碼的QString像「1.0000」? – 2012-04-08 16:05:51

+0

爲這個視圖設置的模型已經填充了數據,我確信QVariants是有效的.http://imageshack.us/photo/my-images/21/scrul.png/ – alpex 2012-04-08 16:20:50

回答

3

你的方法不叫,因爲你忘在函數簽名的結束const符:

QString displayText(const QVariant & value, const QLocale & locale) const 
+1

它的工作完美。謝謝! – alpex 2012-04-09 03:22:19