QTableView
モデルがですQStandardItemModel
。列の 1 つで、新しいインデックスを作成し、それを使用setIndexWidget
してカスタムの色選択ウィジェットに割り当てます。この列を使用してビューを並べ替えて、ユーザーがアイテムを同じような色でグループ化できるようにしたいと考えています。カスタム ウィジェット用に を実装しましたoperator<
が、それを使用しようとすると、次のようなランタイム デバッグ アサーションが表示されます。
Expression: Invalid operator<
この列で並べ替えるにはQStandardItem
、ウィジェットが接続されているロール データを設定する必要がありますか?
operator< コードは問題ないと思いますが、念のため含めています。
bool operator<(const QPenWidget &rhs) const
{
// use the RGB value to index the color
int r_lhs, g_lhs, b_lhs, rgb_lhs;
int r_rhs, g_rhs, b_rhs, rgb_rhs;
this->m_pen.color().getRgb(&r_lhs, &g_lhs, &b_lhs);
rgb_lhs = (r_lhs * 65536) + (g_lhs * 256) + b_lhs;
rhs.m_pen.color().getRgb(&r_rhs, &g_rhs, &b_rhs);
rgb_rhs = (r_rhs * 65536) + (g_rhs * 256) + b_rhs;
if (rgb_lhs != rgb_rhs)
return rgb_lhs < rgb_rhs;
if (m_pen.style() != rhs.m_pen.style())
return m_pen.style() < rhs.m_pen.style();
return m_pen.width() < rhs.m_pen.width();
}