Kam ich um einen besseren Vorschlag, einfach überschreiben die cellDoubleClicked signal mit einem SLOT.
Dies ist, wenn Sie möchten, dass keine der Zellen geändert werden
Anwenden @Narek code zu Zeilen oder Spalten, verwenden Sie einfach eine einfache for-Schleife und eine Bedingung in für die flags für Zeilen/Spalten, die Sie nicht wollen, bearbeitet werden.
Der folgende code liest eine csv-Datei in einem QTableWidget:
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 =newQTableWidgetItem(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();}}}
Einfügen in das QTableWidget folgende Arten von Gegenständen:
Funktioniert!
EDIT:
Dies ist eine bessere Lösung. Dank @priomsrb.
InformationsquelleAutor der Antwort Narek
Das Ergebnis mit XOR hängt davon ab, was der aktuelle Stand ist. Ich würde vorschlagen, mit
sicherstellen Bearbeiten ist ausgeschaltet, unabhängig von der aktuellen Einstellung.
InformationsquelleAutor der Antwort user2923436
Kam ich um einen besseren Vorschlag, einfach überschreiben die cellDoubleClicked signal mit einem SLOT.
Dies ist, wenn Sie möchten, dass keine der Zellen geändert werden
InformationsquelleAutor der Antwort Damdidam
Anwenden @Narek code zu Zeilen oder Spalten, verwenden Sie einfach eine einfache for-Schleife und eine Bedingung in für die flags für Zeilen/Spalten, die Sie nicht wollen, bearbeitet werden.
Der folgende code liest eine csv-Datei in einem QTableWidget:
InformationsquelleAutor der Antwort Tim Hutchison