سؤال

أنا جديد على Pyqt ، وما زلت أواجه بعض المشكلات الجديدة: D
لديّ QTableWidget يتم تفويض العنصر على عنصر تحكم Qchoice (آمل أن قلت ذلك بشكل صحيح)
باختصار: كيفية تغيير لون خلفية الخلية في عنصر واجهة مستخدم الجدول ؟؟
يمكنني استخدام Pyqt4 و Python 2.6
شكرا لك

هل كانت مفيدة؟

المحلول

يستخدم

QTableWidgetItem QTableWidget.item(row, column)

و

QTableWidgetItem setData(role, data)

مع

Qt.BackgroundRole

على النحو التالي:

table.item(0, 0).setData(Qt.BackgroundRole, color).

وقراءة عن آلية الأدوار المستخدمة في نموذج/عرض QT.

نصائح أخرى

لقد استخدمت شيئًا كهذا:

brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
item.setBackground(brush)

حيث العنصر هو كائن QTableWidgetItem

إذا كنت تستخدم QTableView استخدم هذا:

model.setData(model.index(0, 0), QVariant(QBrush(Qt::red)), Qt::BackgroundRole);

فيما يلي بعض خطوط الكود المفيدة. آسف للتكرار ، أحاول اكتساب بعض السمعة.

QStandardItemModel* model = new QStandardItemModel(numRows, numColumns);
QStringList headers;
headers.append("Date");
model->setHorizontalHeaderLabels(headers);
QStandardItem* item = new QStandardItem(text);
item->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
item->setData(QVariant(QBrush(Qt::green)), Qt::BackgroundRole);
model->setItem(row, column, item);

أو ببساطة:

item->setBackground(Qt::green);

مهلا ، قمت بتعيين طريقة المندوب لعنصر أداة الجدول. في حالة الطلاء من المندوب ، تتعامل مع تقنية تغيير اللون .. ألق نظرة على هذا مثال، هنا قاموا باختيار مخصص. بنفس الطريقة التي تتعامل بها مع لوحة خلية العنصر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top