crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QTableWidget с CheckBox'ом внутри
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
wiz29 Дата 14.4.2011, 9:17
  ну если тебе только чекбокс нужно вставить, используй лучше метод с QTableWidgetItem

он гораздо понятнее
silver47 Дата 14.4.2011, 9:15
 
QCheckBox* pCheckB(qobject_cast<QCheckBox*>(pWidget->cellWidget(0, 0)));


Именно то, что нужно! Спасибо.
wiz29 Дата 14.4.2011, 9:08
 
    QTableWidget* pWidget(new QTableWidget);
    pWidget->setRowCount(1);
    pWidget->setColumnCount(1);
    pWidget->setCellWidget(0, 0, new QCheckBox(pWidget));
    pWidget->show();
    QCheckBox* pCheckB(qobject_cast<QCheckBox*>(pWidget->cellWidget(0, 0)));
    if (pCheckB)
    {
        pCheckB->setChecked(true);
    }

Можно и так
silver47 Дата 14.4.2011, 9:03
  Спасибо Работает.

А на будущее, все же можно как то установить конкретный виджет для ячейки, а потом его получить с помощью cellWidget? Уж коли метод есть, то и как-то применяться он должен.
wiz29 Дата 14.4.2011, 8:59
  там поправка в коде выше
pItem->setCheckState(Qt::Unchecked);
silver47 Дата 14.4.2011, 8:50
 
item = new QTableWidgetItem;
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
table->setItem(0, 0, item);


Нет Чекбокса:
wiz29 Дата 14.4.2011, 8:42
 
//some part of code
.............................
QTableWidget* pSomeTable(GetSomeTable());
pSomeTable->setColumnCount(1);
pSomeTable->setRowCount(pSomeTable->rowCount() + 1);
QTableWidgetItem* pItem(new QTableWidgetItem(tr("blablabla")));
pItem->setFlags(pItem->flags() | Qt::ItemIsUserCheckable);
pItem->setCheckState(Qt::Unchecked);
pSomeTable->setItem(0, 0, pItem);
..............................
//in other place of code
QTableWidget* pTableWidget(GetSomeTable());
QTableWidgetItem* pItem(pTableWidget->item(0, 0));
if (pItem) {
    Qt::CheckState st = pItem->checkState();
}
...............................


Цитата(silver47 @ 14.4.2011, 9:37) *
Цитата(wiz29 @ 14.4.2011, 10:33) *
А ты добавил элемент в таблицу? прежде чем его читать


Да. В конструкторе:
table->setCellWidget(0, 0, new QCheckBox);


см пример выше.
silver47 Дата 14.4.2011, 8:37
 
Цитата(wiz29 @ 14.4.2011, 10:33) *
А ты добавил элемент в таблицу? прежде чем его читать


Да. В конструкторе:
table->setCellWidget(0, 0, new QCheckBox);
wiz29 Дата 14.4.2011, 8:33
  А ты добавил элемент в таблицу? прежде чем его читать
silver47 Дата 14.4.2011, 8:32
 
QTableWidget* pTableWidget(table);
QTableWidgetItem* pItem(pTableWidget->item(0, 0));
qDebug() << pItem;
if (pItem) {
    Qt::CheckState st = pItem->checkState();
}


table - это указатель на мой табличный виджет
pItem - всегда нулевой указатель :unsure:
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 17:43