يحتوي QTableView على مربعات اختيار غير مرغوب فيها في كل خلية

StackOverflow https://stackoverflow.com/questions/2396744

  •  25-09-2019
  •  | 
  •  

سؤال

لقد بدأت للتو في برمجة QT ، وأحاول إجراء تخطيط جدولي بسيط باستخدام أ QTableView التحكم في فئة نموذجية من الخليط الخاص بي يرث من QAbstractTableModel. لسبب ما ، ينتهي عرض الجدول الخاص بي إلى أن يبدو مثل هذا:

alt text
(مصدر: nerdland.net)

ما هي تلك الأشياء التي تبدو مثل مربعات الاختيار (ولكن لا تفعل أي شيء عندما أنقر عليها) في كل خلية ، وكيف يمكنني أن تختفي؟ لم أغير أي من QTableView الخصائص باستثناء اسم الكائن.

إذا كان الأمر مهمًا ، فإن رمز النموذج الخاص بي قد مات بسيطًا:

MyTableModel::MyTableModel(QObject* parent)
  : QAbstractTableModel(parent)
{
}

MyTableModel::~MyTableModel()
{
}

int MyTableModel::rowCount(const QModelIndex& parent) const
{
  return 1000; 
}

int MyTableModel::columnCount(const QModelIndex& parent) const
{
  return 5;
}

QVariant MyTableModel::data(const QModelIndex& index, int role) const
{
  return "Foo";
}

تم تصميم واجهة حوار UI في مصمم QT ، وداخل الفصل لحوار الحوار أقوم بإرفاق النموذج بعرض مثل هذا:

MyTableModel testModel = new MyTableModel(this);
ui.testTable->setModel(testModel);

بخلاف ذلك ، لا أقوم بأي عمليات على ui.testTable.

باستخدام QT 4.6.

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

المحلول

حاول التغيير MyTableModel::data() الى الآتى الى القادم الى الم:

QVariant MyTableModel::data(const QModelIndex& index, int role) const
{
    if (role == Qt::DisplayRole)
        return "foo";
    else
        return QVariant();
}

من المحتمل أن يكون Qvariant للعودة للدور Qt::CheckStateRole كان يساء فهمه من قبل qtableview.

نصائح أخرى

هل تحدث بأي فرصة لتعيين ملف qt :: itemIsuserCheckable العلم في أعلام ()?

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