1
我想教自己如何正確使用QStyledItemDelegate
類。 Qt有個很棒的例子,我在這裏讀到:Qt Spin Box Delegate Example。我將如何使用QStyledItemDelegate僅使視圖的一部分可編輯?
但這裏有一個問題,我似乎無法回答。我們來看看他們的示例截圖。
我怎麼會寫SpinBoxDelegate
在他們的例子,這樣我只能數據,也就是說,只有在列2項的編輯一部分?
我想教自己如何正確使用QStyledItemDelegate
類。 Qt有個很棒的例子,我在這裏讀到:Qt Spin Box Delegate Example。我將如何使用QStyledItemDelegate僅使視圖的一部分可編輯?
但這裏有一個問題,我似乎無法回答。我們來看看他們的示例截圖。
我怎麼會寫SpinBoxDelegate
在他們的例子,這樣我只能數據,也就是說,只有在列2項的編輯一部分?
我假設你已經重新實現QAbstractItemDelegate::createEditor()
最簡單的方法,以表明在表中的某個指標應該爲可編輯就是從這個函數返回NULL
,例如:
QWidget *QAbstractItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index)
{
if(index.column() == 0)
return NULL;
return new QSpinBox(parent);
}
你可以在你的模型塞進更多的信息,並與QModelIndex::data()
該訣竅取回票友。我有點擔心我會通過返回一個空指針來崩潰程序......我沒有意識到'QAbstractItemDelegate'足夠聰明來檢查它。謝謝! – 2012-07-17 19:52:06