Ich bin mit einem QItemDelegate in Kombination mit der QTableView IsUserCheckable Flag, um eine zentrierte Checkbox Spalte zu zeichnen. Alles hat gut funktioniert, bis ich die Zeilenauswahl für die Tabelle aktiviert habe.Qt: Checkbox & QItemDelegate - nicht malen Kontrollkästchen, wenn die Auswahl
Bei der Auswahl wird nur der blaue Auswahlhintergrund angezeigt, und die Kontrollkästchen werden nicht mehr angezeigt.
Das folgende ist mein Code, den ich verwende, um das Kontrollkästchen innerhalb des Delegaten zu malen.
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);
}
Irgendwelche Ideen, warum dies nicht richtig gezeichnet wird, wenn eine Auswahl getroffen wird?
Sie müssen wirklich mehr Code posten. Ich nehme an, Ihre Bestellung ist durcheinander und Sie malen den blauen Hintergrund ** nach ** Sie malen die Checkbox – Robert
Dies ist der einzige relevante Code, der nichts malt. Ich stelle mir vor, dass das Thema mit der von mir erwähnten Reihenfolge meiner Malerei zusammenhängt, aber ich bin mir nicht sicher, wie ich an dieser Stelle die richtigen Schritte umsetzen soll. Hoffe, dass jemand mehr Einblick geben kann. – cweston