QTableWidget eine Spalte nicht editierbar machen...

Alles rund um die Programmierung mit Qt
Antworten
RobRoy1304
Beiträge: 47
Registriert: 9. Juli 2009 10:56

QTableWidget eine Spalte nicht editierbar machen...

Beitrag von RobRoy1304 »

Hallo,

ich bin QT Neuling, und habe mal eine Frage zu QTableWidget. Mit der
Suchfunktion hab ich nix gefunden zu folgenden Problem:

Ich habe ein QTableWidget mit 3 Spalten, zwei davon sollen editierbar
sein, also Dateneingabe möglich und eine Spalte soll ''ReadOnly'' sein.

Mit dem GUI-Tool habe ich bei meiner Tabelle rowselect sowie single item
select eingestellt.

Man kann zwar mit:

Code: Alles auswählen

QTableWidgetItem * newitem =new QTableWidgetItem(query.value( record.indexOf("id")).toString());
newitem->setFlags(Qt::ItemIsSelectable);
ui->tableWidget->setItem(i,0,newitem);
das Ganze erreichen aber nun kann mann die Zeile nicht selektieren wenn
mann auf die Spalte ''ID'' klicket.
Ist es also möglich die Tabelle dazu zu bewegen das wenn man auf die
Spalte ID klickt die ganze Zeile selektiert ist und trotzdem diese Spalte
nicht editierbar ist.

Eine Idee von mir ist das Signal cellDoubleClicked zu nutzen und in dem
selbstgebauten slot eine Abfrage zu machen ''ist nicht Spalte ID dann
signal entfernen'', nur wie macht man das.

Code: Alles auswählen

connect(ui->tableWidget, SIGNAL(cellDoubleClicked(int,int)),this,SLOT(doppelklick(int,int)));//im Konstruktor

bool MainWindow::doppelklick(int y, int x)
{
    if(x==0)//1.spalte?(id soll nicht veränderbar)
    {
        ui->tableWidget->closeEvent(NULL);//geht leider nicht is protected
    }
    return true;
}
phlox81
Beiträge: 97
Registriert: 7. Juli 2009 12:30
Kontaktdaten:

Beitrag von phlox81 »

Evtl. macht es sinn diese Spalte zu verstecken?
So mach ich das meistens mit den id spalten in meinen TableViews.

phlox
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RobRoy1304
Beiträge: 47
Registriert: 9. Juli 2009 10:56

Beitrag von RobRoy1304 »

Danke für die Tipps, andere Flags bringen leider auch nicht den gewünschten
Erfolg. Aber das mit der Spalte verstecken ist eine Super-Idee, hätte ich
eigentlich auch selbst drauf kommen können.

thx
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und warum sollte Qt::ItemIsEditable nicht gehen?? :?:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten