我正在使用一個QItemDelegate結合QTableView的IsUserCheckable標誌來繪製一箇中心複選框列。所有的工作都很好,直到我爲表格啓用了行選擇。Qt:複選框和QItemDelegate-沒有繪製複選框時發生選擇
當選擇發生時,藍色選擇背景是唯一繪製的,並且不再顯示覆選框。
以下是我用來繪製委託內複選框的代碼。
void CheckboxDelegate::drawCheck(QPainter* painter, QStyleOptionViewItem const& option, QRect const& rect, Qt::CheckState state) const
{
QSize size = check(option, option.rect, Qt::Checked).size();
QRect checkboxRect = QStyle::alignedRect(option.direction, Qt::AlignCenter, size, option.rect);
QItemDelegate::drawCheck(painter, option, checkboxRect, state);
}
任何想法爲什麼選擇時不能正確繪畫?
你真的需要發佈更多的代碼。我猜你的訂購會搞砸,而你在繪製複選框後繪製藍色背景** – Robert 2010-12-14 21:29:31
這是唯一能夠繪製任何東西的相關代碼。我想象這個問題與我提到的畫的順序有關,但我不確定如何在這一點上實施適當的步驟。希望有人能提供更多的見解。 – cweston 2010-12-15 00:58:59