qt 中引入了經典的mvc結構,即模型/檢視/控制分離的結構,不過qt中只有mv沒有c,模型主要獲取資料,檢視主要複製模型的顯示,而委託只要是設定顯示的風格,在某一行某一列使用的不同的部件進行顯示,我在qt的qspinbox的歷程上加上了一點。
通常委託都繼承qstyleditemdelegate和qitemdelegate這個兩個類。兩個類的**基本相同,如果需要使用style sheet 時,建議使用qstyleditemdelegat。
classspinboxdelegate
:public
qstyleditemdelegate
;
這個函式讓view構建出不同的效果的,可以在這裡根據 qmodeindex &index 進入判定在某一樣或者某一類使用什麼標準的空間進行顯示。
qwidget*spinboxdelegate::
createeditor(qwidget
*parent,
const
qstyleoptionviewitem
&option,
const
qmodelindex
&index)
const
else
}
將模型裡面的資料顯示到view上
voidspinboxdelegate::seteditordata(qwidget
*editor,
const
qmodelindex
&index)
const
else
#endif
}
修改view上的資料時,自動的呼叫這個函式,將更改之後的資料寫會模型中,進行資料的同步,如果乙個模型同時被多個view使用,進行資料的同步很重要。
voidspinboxdelegate::setmodeldata(qwidget
*editor,
qabstractitemmodel
*model,
const
qmodelindex
&index)
const
else
}//一般都是這麼寫,沒有理解過這個函式是幹什麼用
voidspinboxdelegate::updateeditorgeometry(qwidget
*editor,
const
qstyleoptionviewitem
&option,
const
qmodelindex
&)const
Qt 自定義事件
最近做的專案,是用qt的完成的,在用到事件派發的時候,要用自己自定義的事件型別來滿足需要。具體就是按照qt的官方文件說明,做了乙個簡單的例子,以免忘記,就先寫下來儲存。首先有個customevent 類,繼承自qevent ifndef customevent h define customeven...
Qt 自定義事件
關於qt的自定義事件也是看了幾個大牛的部落格。總結下心得,如有錯誤請指出。一起成長。先給原始碼。也是第一次原創啊,不知道怎麼寫,呵呵。include include class mywidget public qwidget static const int mycustomeventtype 10...
Qt 自定義按鈕
自定義控制項的實現思路如下 a1.新建乙個類,該類繼承qpushbutton,由於qpushbutton繼承於qwidget,因此可以直接在該繼承類裡面進行布局管理和掛載控制項 a2.新建兩個qlabel例項,即buttonimage和buttontxt 是qlable例項 分別用兩個垂直布局管理器...