से एक छवि प्रदर्शित करना मैं QAbstractTableModel
से एक छवि प्रदर्शित करने का प्रयास कर रहा हूं। मैंने QPixmap
को QVariant
data()
के रूप में वापस करने का प्रयास किया, लेकिन यह केवल खाली कोशिकाओं का उत्पादन करता है, जब मैं दूसरे कॉलम में प्रत्येक सेल को 20x20 ब्लैक स्क्वायर रखने की अपेक्षा करता हूं।एक QAbstractTableModel
QVariant MySqlTableModel::data(const QModelIndex &idx, int role = Qt::DisplayRole) const
{
if (role == Qt::DisplayRole && idx.column() == 1) {
QPixmap pixmap(20,20);
QColor black(0,0,0);
pixmap.fill(black);
return pixmap;
}
return QSqlTableModel::data(idx, role);
}
हाँ मुझे लगा कि यह एक प्रतिनिधि के साथ किया जा सकता है, लेकिन यह ओवरकिल की तरह लग रहा था। मुझे लगता है कि कोई आसान तरीका नहीं है? साथ ही, अगर मैं केवल एक विशिष्ट कॉलम को प्रतिनिधि को लागू करना चाहता हूं, तो क्या ऐसा करने का कोई तरीका है? वर्तमान में मैंने setItemDelegate का उपयोग करके प्रतिनिधि को पूरे टेबल व्यू में सेट कर दिया है। फिर मुझे मॉडल के डेटा() फ़ंक्शन के साथ-साथ प्रतिनिधि के पेंट() फ़ंक्शन में कॉलम चेक (यह देखने के लिए कि छवियों में कौन सा कॉलम प्रदर्शित होता है) - यह कोड डुप्लिकेशन की तरह लगता है ... वहां है एक बेहतर तरीका है? –
एक प्रतिनिधि का उपयोग किए बिना 'क्यूटी :: सजावट रोल 'का उपयोग करना आसान तरीका है। लेकिन आप 'setItemDelegateForColumn' वाले कॉलम के लिए एक प्रतिनिधि सेट कर सकते हैं। – alexisdm
आह, मैं setItemDelegateForColumn को कैसे याद कर सकता हूं? धन्यवाद! –