한 열에 QTableWidget
을 입력하고 싶습니다.을 편집 할 수 있습니다.
포럼에서 나는 flags
에 관해 많이 읽었지만 구현할 수 없었습니다. 아이템의 종류 다음 QTableWidget에QTableWidget에서 열을 만드는 방법은 읽기 전용입니까?
48
A
답변
77
삽입 :
QTableWidgetItem *item = new QTableWidgetItem();
item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
작품 잘!
편집 :
QTableWidgetItem *item = new QTableWidgetItem();
item->setFlags(item->flags()^Qt::ItemIsEditable);
이 더 나은 솔루션입니다. @priomsrb에 감사드립니다.
27
XOR을 사용한 결과는 현재 상태에 따라 다릅니다.
item->setFlags(item->flags() & ~Qt::ItemIsEditable);
을 사용하여 현재 설정에 관계없이 편집이 꺼져 있는지 확인하시기 바랍니다.
+0
나는이 해결책을 시도했지만 작동하지 않았다. 컴파일러가 '~'에 대해 불평했다. – Momergil
0
@ Narek의 코드를 행이나 열에 적용하려면 간단한 for 루프를 사용하고 편집 할 수없는 행/열에 플래그를 포함시키는 조건을 넣으면됩니다.
다음 코드는 QTableWidget에 csv 파일을 읽어
if(!rowOfData.isEmpty()){
for (int x = 0; x < rowOfData.size(); x++)
{
rowData = rowOfData.at(x).split(",");
if(ui->table_Data->rowCount() <= x) ui->table_Data->insertRow(x);
for (int y = 0; y < rowData.size(); y++)
{
QTableWidgetItem *item = new QTableWidgetItem(rowData[y],QTableWidgetItem::Type);
if(y < 3) item->setFlags(item->flags()^Qt::ItemIsEditable); // Only disables the first three columns for editing, but allows the rest of the columns to be edited
ui->table_Data->setItem(x,y,item);
ui->table_Data->repaint();
}
}
}
0
난 그냥 새로운 슬롯에 cellDoubleClicked 신호를 덮어, 더 나은 제안에왔다. 셀을 수정하지 않으려면이 옵션을 사용하십시오.
관련 문제
- 1. event.clientX는 읽기 전용입니까?
- 2. 왜 Request.QueryString은 읽기 전용입니까?
- 3. 왜 string.Empty가 읽기 전용입니까?
- 4. Sharepoint의 읽기 전용 모드는 실제로 읽기 전용입니까?
- 5. Access 2007 db가 읽기 전용입니까?
- 6. HTMLAgility Pack - OuterHtml 읽기 전용입니까?
- 7. LinqPad의 Linq 쿼리는 읽기 전용입니까?
- 8. 왜이 Hibernate MySQL Connection은 읽기 전용입니까?
- 9. oopen 커서는 전달 전용이고 읽기 전용입니까?
- 10. 왜 Console.Out & Console.Error 속성은 읽기 전용입니까?
- 11. 왜 연결 문자열의 구성이 읽기 전용입니까?
- 12. CSS는 블랙 베리 전용입니까?
- 13. 왜 C# foreach 문에서 반복 변수가 읽기 전용입니까?
- 14. 이 QTableWidget에서 항목을 표시하는 방법은 무엇입니까?
- 15. RubyQt QtableWidget에서 충돌 발생
- 16. qtablewidget에서 csv로 데이터 내보내기
- 17. 열을 사용하여 UITable을 만드는 방법은 무엇입니까?
- 18. 특정 유형의 열을 만드는 방법은 무엇입니까?
- 19. 업데이트 할 수없는 열을 만드는 방법은 무엇입니까?
- 20. Gridview에서 암호 유형의 열을 만드는 방법은 무엇입니까?
- 21. .htaccess - PHP 전용입니까?
- 22. RadioButton 열을 만드는 DataGrid
- 23. 읽기 전용 종속성 속성을 만드는 방법은 무엇입니까?
- 24. GridViewColumn을 읽기 전용/비활성화로 만드는 방법은 무엇입니까?
- 25. powershell에서 읽기 전용 멤버를 만드는 방법은 무엇입니까?
- 26. EDI 양식을보다 읽기 쉽게 만드는 방법은 무엇입니까?
- 27. Source Safe를 읽기 전용으로 만드는 방법은 무엇입니까?
- 28. Java 읽기 전용으로 배열을 만드는 방법은 무엇입니까?
- 29. QTableWidget에서 언제 cellChanged 신호가 시작됩니까?
- 30. C++, QTableWidget에서 행 추가/제거
'item-> setFlags (item-> flags()^Qt :: ItemIsEditable);'를 사용하는 것이 좋습니다. 이것은 다른 플래그들을 그대로 남겨 둘 것입니다. – priomsrb
@priomsrb 왜 user2923436에서 제안한 것처럼 item-> flags() & ~ Qt :: ItemIsEditable 대신 배타적 또는 (XOR)을 사용합니까? XOR의 결과는 플래그의 기본 상태에 따라 다릅니다. – m7913d
@ m7913d 당신이 옳다고 생각합니다. 내 솔루션 그냥 편집 가능한 상태를 전환합니다. 항목이 이미 읽기 전용 인 경우 작동하지 않습니다. – priomsrb