2012-04-08 103 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または「1.0000」のようにハードコーディングされたのQStringを返しますか? –

+0

このビューのために設定されたモデルは既にデータで満たされています。私はQVariantsが有効であることを確信しています.http://imageshack.us/photo/my-images/21/scrul.png/ – alpex

答えて

3

あなたは、関数シグネチャの終わりにconst指定子を忘れてしまったので、あなたのメソッドが呼び出されていません。

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

これは完全に機能しました。ありがとうございました! – alpex

関連する問題