0
| Name | Math | Physics | Average grade |
| | | | |
| | | | |
| | | | |
| | | | |
비활성화 편집 및 setItem은
열 "수학"과 "물리학은"사용자입니다 숫자를 넣으려면 열 "average "값을 넣을 수 없습니다. 사용자가"수학 "및"물리학 "등급을 입력 한 후에 평균 값을 표시하기위한 것입니다. 편집을 비활성화 할 수 있지만 계산 된 값을 "평균"열로 표시 할 수 있습니까?| | | | |
| | | | |
나는 여러 행에 내용을 쓰고 싶어하지만, 내 코드는
ui->tableWidget->setColumnCount(4); ui->tableWidget->setRowCount(8); ui->tableWidget->setSortingEnabled(false); QTableWidgetItem *newItem = new QTableWidgetItem(tr("Hello World")); for (int i=0; i< ui->tableWidget->rowCount(); i++) ui->tableWidget->setItem(i, 0, newItem);
나는 여전히 때문에 이해하지 못하는이
QTableWidget: cannot insert an item that is already owned by another QTableWidget
과 같은 메시지가 작동하지 않습니다 나는 QT를 가진 초보자이다. 도와주세요, 많은 감사합니다! :)
코드 업데이트 : 당신은 QTableWidgetItem::setFlags()
을 사용할 수 있습니다
for (int i = 0; i < ui.tableWidget->rowCount(); i++) {
QTableWidgetItem *icon_item = new QTableWidgetItem;
QIcon icon(":/myproject/icon/test.png");
icon_item->setIcon(icon);
ui.tableWidget->setItem(i, 0, icon_item);
}
for (int j = 0; j < ui.tableWidget->rowCount(); j++) {
ui.tableWidget->item(j, 3)->setFlags(ui.tableWidget->item(j, 3)->flags() & ~Qt::ItemIsEditable);
}
덕분에 많이. 귀하의 두 번째 솔루션은 나를 위해 잘 작동합니다. 그러나 액세스 위반 때문에 첫 번째 작동하지 않습니다. 내 코드는 'for (int i = 0; i rowCount(); i ++) { ui.tablewidget-> item (i, 3) -> setFlags (ui.tablewidget-> item i, 3) -> flags() & ~ Qt :: ItemIsEditable); }' 내가 디버그 할 때 4로 실행하면 액세스 위반이 발생합니다. ( –
gnase
그 셀/열에 setItem()을 호출하지 않았으므로 아마도 널 포인터를 역 참조하는 것입니다. – jpnurmi
그래서 어떻게해야합니까? (미안, 나는 초보자이다.) – gnase